Originariamente inviato da anx721
char c* = (char *)malloc(DIM * sizeof(char));

in questo modo allochi un array di DIM elementi, ognuno dei quali è un carattere; se vuoi usare l'array come una stringa ricorda che l'ultimo carattere deve essere il carattere di fine string '\0', quindi DIM deve essere 1 in più rispetto alla lunghezza della stringa che ci vuoi memorizzare.

Per riallocare lo spazio precedentemente allocato devi usare la funzione realloc:

c = (char *)realloc(c, 100);

cosi ad esempio riallochi c in modo che punti ad una nuova zona di memoria di 100 locazioni; il vecchio contenuto a cui puntava c viene ricopiato nella nuova locazione; se invece non ti interessa avere il vecchio contenuto usi normalemnte la malloc,


Un array di puntatori a caratteri:

codice:
  char** array;
  array = (char**)malloc(DIM_VETTORE * sizeof(char*));

  for (int i = 0; i < DIM; i++)
    array[i] = (char*)malloc(DIM_UNITARIA * sizeof(char));