Насколько я понимаю, вы можете перераспределить кучу, используя одно и то же имя переменной, и она будет распределять память в другом месте в пространстве.
Однако в этом примере я получаю тот же адрес памяти во втором malloc для переменной-указателя x.Любые идеи?
void main()
{
int *x = (int*)malloc(sizeof(int)); //allocate space for int value
*x = 100; //dereference x for value
printf("The value of x is %i address is %p\n",*x, &x);
int *y = (int*)malloc(sizeof(int)); //allocate space for int value
*y = 150; //dereference x for value
printf("The value of y is %i address is %p\n",*y, &y);
x = (int*)malloc(sizeof(int)); //allocate space for int value
*x = 400; //dereference x for value
printf("The value of x is %i address is %p\n",*x, &x);
}
GCC дает мне это:
The value of x is 100 address is 0xffffcc08
The value of y is 150 address is 0xffffcc00
The value of x is 400 address is 0xffffcc08