Являются ли два указателя C void с одинаковыми данными разными объектами памяти? - PullRequest
0 голосов
/ 16 октября 2018

Например:

void *p1 = someStringPointer;
void *p2 = p1;

Хотя это два уникальных указателя, учитывая, что они оба указывают на одно и то же значение, они все еще разные объекты памяти?

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

p1 и p2 располагаются по двум разным адресам в памяти (в данном случае это область стека), но они содержат одинаковое значение, их значение равно someStringPointer.

0 голосов
/ 16 октября 2018

Если вы печатаете адрес p1 и p2

printf("%p\n", (void *) &p1);
printf("%p\n", (void *) &p2);

У них разные адреса, так что да, это разные объекты памяти.

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