PDA

Visualizza la versione completa : [c] array dinamico


Lucked
20-05-2004, 01:03
Ho una domanda:
come alloco un array dinamico i cui elementi dell'array sono puntatori a char?

io ho fatto cosi:

char *pi;
pi = (char *) malloc (sizeof(10));


per avere un array come precedentemente detto lungo 10
giusto? :bubu:

anx721
20-05-2004, 01:36
Innanzitutto è meglio fare:

char *pi;
pi = (char *) malloc (10 * sizeof(char));

(anche se è vero che un char occupa un byte, sizeof(10) non ti restituisce la dimensione di un int?!? al massimo dovresti usare malloc(10))

In questo modo però gli elementi dell'array sono char e non puntatori a char, per avere un array di puntatori a char:

char **pi;
pi = (char **) malloc (10 * sizeof(char *));

dopodichè devi allocare lo spazio per la variabile puntata da ogni puntatore, ma probabilmente volevi solo un array di 10 caratteri, che ottieni con la prima soluzione.

Loading