доступ к C многомерному массиву через синтаксис массива против арифметики указателя - PullRequest
0 голосов
/ 27 апреля 2020

Я снова погружаюсь в C через несколько лет. Я думал, что следующие два оператора печати будут иметь одинаковый результат, основываясь на других ответах , которые я нашел; однако, похоже, что это не так.

int main()
{
    int** arr = malloc(
        3 * sizeof(int*)
    );
    for(int y = 0; y < 3; y++) {
        int* subarr = malloc(
            3 * sizeof(int)
        );
        for(int x = 0; x < 3; x++) {
            subarr[x] = y * 3 + x + 1;
        }
        arr[y] = subarr;
    }
    printf("%d\n", *(&arr[0][0]) + 3);
    printf("%d\n", (&arr[0][0])[3]);
}

Может ли кто-нибудь объяснить, что здесь происходит / чего мне не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...