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
char
S.
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
char
s, ognuno di questi array è accessibile con
array[i]
e il char
s negli array nel blocco con
array[i][j]