Как работает присвоение массива указателей указателю void typecast? - PullRequest
1 голос
/ 26 октября 2019

Я пытаюсь понять, что происходит в строке № 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...