Hvordan lage 2 dimensjonal matrise ved hjelp av Malloc i C -programmering

Hvordan lage 2 dimensjonal matrise ved hjelp av Malloc i C -programmering

Malloc () -funksjonen brukes i C -programmering for å lagre dataene i haugen som er dynamisk minnelagring. Det brukes mest til den dynamiske erklæringen av matriser og brukes også til å lage todimensjonale matriser. De todimensjonale matriser brukes til å plotte verdiene i tabellformen med kolonnene og radene.

I denne oppskrivningen lærer vi å lage en 2-dimensjonal matrise ved hjelp av Malloc () -funksjonen i C-programmering.

Hva er en malloc () -funksjon i C -programmering

I noen spesifikke programmer kan vi ofte ikke forutsi størrelsen på en matrise. Hvis vi tildeler verdiene til matrisen selv, kan det ikke endres under utførelsen. Dette vil skape problemer, enten vil minnet bli lavt for matrisen, eller matrisen vil okkupere mindre plass som kaster bort minnet, så for å unngå dette, anbefales det å tilordne matriser dynamisk.

I C -programmering, for dynamisk minnetildeling, brukes forskjellige funksjoner. En av dem er Malloc () -funksjonen; Den sender en forespørsel til haugen om en bestemt minneblokk, og hvis haugen har plass, reagerer den ved å tildele den forespurte minnet til Malloc ().

Malloc () vil okkupere plassen til den tildelte minneblokken i henhold til behovet til et utført program, og etter den vellykkede utførelsen kan dette rommet gjøres gratis ved å bruke gratis () -funksjonen.

Hvordan lage den 2-dimensjonale matrisen ved hjelp av Malloc () -funksjonen i C-programmering

Før opprettelse, bør du vurdere følgende figur for en bedre forståelse av hvordan den 2-dimensjonale matrisen fungerer.

I figuren ovenfor kan vi forstå at i en 2-dimensjonal matrise vil først elementene bli festet i den første boksen i kolonnen etter denne tilsvarende rad Hele matrisen er fylt som første elementer vil bli plassert i x [0] [0 [, deretter x [0] [1], deretter [0] [2], deretter x [0] [1], [1] [ 0], og så videre.

Vi vil vurdere følgende grunnleggende eksempel på å lage en 2-dimensjonal matrise ved bruk av Malloc () i C-programmering. Vi opprettet en tekstfil, cfile.C og skriv inn følgende skript i det:

#inkludere
#inkludere
int main ()
int rad = 5, col = 4;
int * a = (int *) malloc (rad * col * sizeof (int));
int i, j;
for (i = 0; i < row; i++)
for (j = 0; j < col; j++)
*(a + i*col + j) = i + j;
printf ("Array -elementene er: \ n");
for (i = 0; i < row; i++)
for (j = 0; j < col; j++)
printf ("%d", *(a + i *col + j));

printf ("\ n");

gratis (a);
retur 0;

For å kompilere programmet ovenfor, vil vi bruke GCC -kompilatoren:

$ GCC CFile.C -o Cfile

Utfør Cfile, som er den kompilerte filen til cfile.C og vis utgangen:

$ ./cfile

I koden ovenfor har vi inkludert bibliotekene til stdlib.H (for dynamisk minnetildeling) og stdio.h (for inngang og utgang), så erklærte vi variablene rad, kolonne, i og j. Etter erklæringen ringte vi Malloc () for å tilordne minnet i henhold til verdiene "Row" og "Column". Når minnet ble tildelt, brukte vi ganske enkelt de to nestede løkkene for å lagre verdiene i matrisen, og deretter bruke Printf () i nestede sløyfe, viste vi verdiene. Til slutt brukte vi gratis () for å tømme det okkuperte rommet som ble tildelt på mainet av Malloc ().

Konklusjon

To-dimensjonale matriser ligner endimensjonale matriser, den eneste forskjellen mellom 1D- og 2D-matriser er; 2D -matriser lagrer dataene i tabellform, og 1D -matrisen lagrer data i form av rader. Arraysene er det grunnleggende i datastrukturen, og de kan lagre en stor mengde data av samme datatype. I denne artikkelen har vi forklart opprettelsen av den 2-dimensjonale matrisen i det dynamiske minnet ved å kalle Malloc () -funksjonen.