/ / Cosa significa questa riga nel codice? (matrice di puntatori ai caratteri)? - c, matrici, puntatori, caratteri, dimensioni

Cosa significa questa riga nel codice? (matrice di puntatori ai caratteri)? - c, matrici, puntatori, caratteri, dimensioni

In questo codice, la "matrice" è una matrice di puntatori ai caratteri? O qualcos'altro?

struct tmep{
char (*array) [SIZE];
}

Grazie in anticipo :)

risposte:

7 per risposta № 1

È un puntatore a un array di SIZE charS.

La mimica della dichiarazione usa, quindi prima valuti la parentesi, (*array) ti dà un char[SIZE].

Per allocare, la versione stabile è come al solito

array = malloc(num_elements * sizeof *array);

per specificare la dimensione di ciascun oggetto (char[SIZE] qui) nel blocco prendendo il sizeof il puntatore senza riferimenti. Non è necessario modificare tale allocazione se il tipo cambia ad esempio int (*)[SIZE].

Se si desidera specificare il tipo,

array = malloc(num_elements * sizeof(char (*)[SIZE]));

Questo alloca - se malloc succede - un blocco abbastanza grande per num_elements matrici di SIZE chars, ognuno di questi array è accessibile con

array[i]

e il chars negli array nel blocco con

array[i][j]