Je sais que si je définis un tableau commePointeurs équivalent aux tableaux
int a [10];
Je peux utiliser une notation de pointeur, pour y accéder son adresse à l'aide a+<corresponding_item_in_array>
et il est valeur à l'aide, *(a+<corresponding_item_in_array>)
.
Maintenant, je voulais inverser les choses, je malloc
d'allouer une mémoire à un pointeur entier, et a essayé de représenter le pointeur dans la notation de l'indice, mais cela n'a pas
int *output_array;
output_array = (int *) (malloc(2*2*2*sizeof(int))); //i.e, space for 3d array
output_array[0][0][1] = 25;
//^produces error: subscripted value is neither array nor pointer
j'ai utilisé un expression de pointeur en utilisant le mappage de stockage, mais n'est pas la méthode la plus simple disponible? et pourquoi?
Vous pouvez utiliser la réponse à cet article pour étendre à la 3ème dimension aussi bien: http://stackoverflow.com/questions/1052818/create-a-pointer-to-two-dimensional-array – Tuxdude