Я пытаюсь понять, что происходит в строке № 3.
Какова структура pos
. Я знаю, что удаление ( void *)
из строки 3 делает присвоение type int*
для int (*)[2]
, и массивы не могут быть напрямую скопированыТак что же здесь делает типографская обработка?
int a[] = {1,5,-3};
int * p = &a[0];
int (*pos)[2] = ( void *)p;
printf("%d \n",(pos[0][0])); //prints 1
printf("%d \n",(pos[0][1])); //prints 5
printf("%d \n",(pos[1][0])); //prints -3
printf("%d \n",(pos[1][1])); //prints garbage