Hvordan lage en matrise ved hjelp av Malloc i C -programmering

Hvordan lage en matrise ved hjelp av Malloc i C -programmering

I C -programmering brukes matrisen til å lagre en rekke verdier av samme datatype, og den opptar litt plass i minnet som kan være enten statisk eller dynamisk. Malloc er en funksjon som brukes i C -programmeringen for dynamisk minnetildeling.

I denne artikkelen vil vi lære om Malloc -funksjonen for å lage en matrise i C -programmering.

Hva er en malloc () i C -programmering

Det dynamiske minnet blir tildelt programmet under utførelsen i henhold til det rommet som det trengs av det. I statisk minne blir det faste minnet tildelt programmet før utførelse av programmet som har følgende ulemper:

  • Arrayen erklært med fast størrelse vil okkupere den faste størrelsen på systemminnet
  • Hvis matrisen har verdier mindre enn størrelsen erklært, vil ledig plass være svinn og kan ikke brukes av et annet program
  • Hvis matrisen har verdier mer enn størrelsen erklært, kan programmet gi feil

For å unngå disse ulempene, vil vi bruke den dynamiske minnetildelingsordningen, da denne ordningen vil tildele minnet om blokken som er nødvendig av programmet under utførelsen. Dynamisk minne har forskjellige funksjoner brukt som peker mot programmet.

Malloc () -funksjonen står for "Memory Allocation" og brukes til dynamisk minnetildeling mens utførelsen av programmet. Når malloc () -funksjonen kalles, sender den en forespørsel fra en minneblokk til haugen (det er et minnesegment der minnet blir tildelt tilfeldig). Hvis heapen har minne som tilsvarer den minneblokken, vil den godta forespørselen og tilordne den størrelsen til Malloc () -funksjonen mot forespørselen, og hvis den ikke har noe minne, vil den returnere nullverdien. Når vi er ferdige med minneblokken, kan vi fjerne den ved å bruke gratis () -funksjonen slik at minneblokken kan bli gratis og brukes av de andre programinstruksjonene. For dynamisk minnetildeling må vi inkludere “stdlib.H ”i overskriftsfiler og den generelle syntaksen for å bruke Malloc -funksjonen er:

1
$ Pointer = (CastType*) Malloc (størrelse);

Vi kan bruke hvilken som helst variabel i stedet for "peker", så kan vi erstatte "CastType" med datatypen hvis verdier skal lagres i matrisen. Bruk deretter Malloc () -funksjonen og nevne størrelsen på minnet vi trengte.

Hvordan bruke Malloc -funksjon i C -programmering for å lage en matrise

For en bedre forståelse av opprettelsen av en matrise ved hjelp av Malloc () -funksjonen, vil vi lage et program. For å bruke C -programmeringen i Linux, må vi installere GCC -kompilatoren ved hjelp av kommandoen:

1
$ sudo apt install GCC

Lag en tekstfil ved hjelp av Nano Editor:

1
$ nano myfile.c

Skriv inn følgende kode:

1
2
3
4
5
6
7
8
9
10
11
12
1. 3
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# inkluderer # inkluderer
Int Main (Void)

int størrelse, i, *my_array;
printf (“\ n Vennligst skriv inn størrelsen på matrisen:”);
SCANF (“%D” og størrelse);
my_array = (int *) malloc (størrelse * sizeof (int));
printf (“\ n Angi verdiene til Array:”);
for (i = 0; iscanf (“%d”, & my_array [i]);
printf (“\ n verdiene i matrisen er:”);
for (i = 0; iprintf (“%d”, my_array [i]);
printf (“\ n”);

Lagre skriptet med navnet “MyFile.C ”ved hjelp av Ctrl+S og avslutt deretter redaktøren ved å trykke på Ctrl+X. Etter å ha lagret den, sammenstiller du koden og sjekk om det er noen feil eller ikke ved å bruke kommandoen:

1
$ GCC MyFile.C -o MyFile

"MyFile" vil være en kjørbar fil, kjøre "MyFile" ved hjelp av kommandoen:

1
$ ./myfile

Programmet ble utført med hell. Forklaringen på koden ovenfor er som:

  • Vi inkluderte bibliotekene til C som er stdlib.h for den dynamiske minnetildelingen og stdio.h for andre funksjoner som printf og Scanf
  • Vi initialiserte hoveddelen av programmet med tomrom fordi funksjonen ikke kommer til å returnere en verdi
  • Vi erklærte to variabler størrelse, i og en peker “*my_array
  • Bare brukte printf kommando for å skrive ut “Vennligst skriv inn størrelsen på matrisen”Og lagret inngangen fra brukeren i variabel”størrelse
  • Deretter ved bruk av Malloc -funksjonen, ba om å tilordne minnet i henhold til verdien som er lagret i "størrelse”Variabel og tildelt minnet til matrisen
  • Ba brukeren legge inn verdiene til matrisen og lagre dem i en matrise ved hjelp av for -loopen
  • Til slutt trykket alle verdiene til my_array Bruker for -loopen

Konklusjon

Malloc () -funksjonen brukes i dynamisk minnetildeling, og den kan også brukes til å lagre verdier i matrisen. I denne oppskrivningen har vi diskutert hvordan vi skal erklære og bruke matrisen ved hjelp av Malloc () -funksjonen. Den dynamiske minnetildelingstilnærmingen anbefales når du vil endre størrelsen på en matrise under utførelsen av programmet.