Копирование значений указателей и печать указателей (а не значение, сохраненное в памяти, на которое указывают) - PullRequest
0 голосов
/ 04 февраля 2020

Я не уверен, что я здесь сделал неправильно.

int data[x][y];
int **pointerCopy = (int**) data
printf("%p, %p \n" pointerCopy, data);

Так как pointercopy копирует указатель, являющийся данными, не должно ли напечатанное значение быть таким же? Однако это не так.

1 Ответ

0 голосов
/ 04 февраля 2020

Как сказано в комментариях, после исправления синтаксических ошибок и игнорирования предупреждений, выходное значение равно одинаково для обоих указателей.

Вот код:

~/Desktop/PLAYGROUND$ cat aaa.c
#include<stdio.h>

int main(){
    int x, y;
    x = y = 10;
    int data[x][y];
    int **pointerCopy = (int**) data;
    printf("%p, %p \n" ,pointerCopy, data);
}

И это вывод:

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