Come creare un array usando Malloc nella programmazione C

Come creare un array usando Malloc nella programmazione C

Nella programmazione C, l'array viene utilizzato per archiviare una gamma di valori dello stesso tipo di dati e occupa un po 'di spazio in memoria che può essere statico o dinamico. Il malloc è una funzione utilizzata nella programmazione C per l'allocazione di memoria dinamica.

In questo articolo, impareremo sulla funzione Malloc per creare un array nella programmazione C.

Cos'è un malloc () nella programmazione C

La memoria dinamica viene assegnata al programma durante la sua esecuzione in base allo spazio necessario. Nella memoria statica, la memoria fissa viene assegnata al programma prima dell'esecuzione del programma che ha i seguenti svantaggi:

  • L'array dichiarato con la dimensione fissa occuperà la dimensione fissa sulla memoria del sistema
  • Se l'array ha valori inferiori alle dimensioni dichiarate, lo spazio libero sarà sprecato e non può essere utilizzato da un altro programma
  • Se l'array ha valori più della dimensione dichiarata, il programma può dare errori

Per evitare questi svantaggi, utilizzeremo lo schema di allocazione della memoria dinamica poiché questo schema assegnerà la memoria del blocco necessario dal programma durante la sua esecuzione. La memoria dinamica ha diverse funzioni utilizzate come puntatore per il programma.

La funzione Malloc () sta per "Allocazione della memoria" e viene utilizzata per l'allocazione dinamica della memoria durante l'esecuzione del programma. Quando viene chiamata la funzione Malloc (), invia una richiesta di un blocco di memoria al heap (è un segmento di memoria in cui la memoria viene allocata in modo casuale). Se il heap ha memoria equivalente a quel blocco di memoria, accetterà la richiesta e assegnerà quella dimensione alla funzione Malloc () rispetto alla sua richiesta, e se non ha memoria, restituirà il valore null. Quando abbiamo finito con il blocco di memoria, possiamo cancellarlo utilizzando la funzione Free () in modo che il blocco di memoria possa essere gratuito ed essere utilizzato dalle altre istruzioni del programma. Per l'allocazione dinamica della memoria, dobbiamo includere "stdlib.H "nei file di intestazione e la sintassi generale dell'utilizzo della funzione Malloc è:

1
$ puntatore = (castType*) malloc (dimensione);

Possiamo usare qualsiasi variabile anziché "puntatore", quindi possiamo sostituire il "castType" con il tipo di dati i cui valori saranno archiviati nell'array. Quindi utilizzare la funzione Malloc () e menzionare le dimensioni della memoria di cui avevamo bisogno.

Come utilizzare la funzione Malloc nella programmazione C per creare un array

Per una migliore comprensione della creazione di un array usando la funzione Malloc (), creeremo un programma. Per utilizzare la programmazione C in Linux, dobbiamo installare il compilatore GCC usando il comando:

1
$ sudo APT Installa GCC

Crea un file di testo utilizzando l'Editor Nano:

1
$ nano myfile.C

Digita il seguente codice:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# include # include
int main (vuoto)

dimensione int, i, *my_array;
printf ("\ n digitare le dimensioni dell'array:");
scanf ("%d", e dimensioni);
my_array = (int *) malloc (dimensione * sizeof (int));
printf ("\ n Immettere i valori dell'array:");
per (i = 0; iscanf ("%d", & my_array [i]);
printf ("\ n I valori nell'array sono:");
per (i = 0; iprintf ("%d", my_array [i]);
printf ("\ n");

Salva lo script con il nome di "myfile.C ”usando Ctrl+S e quindi esci dall'editor premendo Ctrl+X. Dopo averlo salvato, compilare il codice e verificare se ci sono errori o meno utilizzando il comando:

1
$ gcc myfile.c -o myfile

Il "myfile" sarà un file eseguibile, esegui il "myfile" usando il comando:

1
$ ./il mio file

Il programma è stato eseguito con successo. La spiegazione del codice sopra è come:

  • Abbiamo incluso le biblioteche di C che sono stdlib.H per l'allocazione dinamica della memoria e stdio.H Per altre funzioni come printf E scanf
  • Abbiamo inizializzato il corpo principale del programma con vuoto perché la funzione non restituirà un valore
  • Abbiamo dichiarato due variabili, io e un puntatore "*my_array"
  • Semplicemente usato il printf comando di stampare il “Inserisci le dimensioni dell'array"E ha salvato l'input dall'utente in variabile"misurare"
  • Quindi utilizzando la funzione Malloc, ha richiesto all'heap di assegnare la memoria in base al valore memorizzato in "misurare"Variabile e assegnato la memoria all'array
  • Ha chiesto all'utente di inserire i valori dell'array e di archiviarli in un array utilizzando il loop
  • Infine, stampato tutti i valori di my_array Usando il loop per

Conclusione

La funzione Malloc () viene utilizzata nell'allocazione della memoria dinamica e può anche essere utilizzata per archiviare i valori nell'array. In questo articolo, abbiamo discusso di come dichiarare e utilizzare l'array usando la funzione Malloc (). L'approccio dinamico di allocazione della memoria è consigliato quando si desidera modificare le dimensioni di un array durante l'esecuzione del programma.