Nesse código, a "matriz" é uma matriz de ponteiros para caracteres? Ou alguma outra coisa?
struct tmep{
char (*array) [SIZE];
}
Desde já, obrigado :)
Respostas:
7 para resposta № 1É um ponteiro para uma matriz de SIZE
char
s.
A declaração imita o uso, então você avalia o parêntese primeiro, (*array)
dá-lhe um char[SIZE]
.
Para alocar, a versão estável é como de costume
array = malloc(num_elements * sizeof *array);
para especificar o tamanho de cada objeto (char[SIZE]
aqui) no bloco, tomando o sizeof
o ponteiro não referenciado. Você não precisa alterar essa alocação se o tipo mudar, por exemplo, para int (*)[SIZE]
.
Se você deseja especificar o tipo,
array = malloc(num_elements * sizeof(char (*)[SIZE]));
Isso aloca - se malloc
obtém sucesso - um bloco grande o suficiente para num_elements
matrizes de SIZE
char
s, cada uma dessas matrizes é acessada com
array[i]
e a char
s nas matrizes no bloco com
array[i][j]