我有以下代码:
int** x;
// Add 4 int pointers to x - code ommitted
// Pop the first element
int* a = x[0];
memmove(&x[0], &x[1], sizeof(int*) * 3);
x = realloc(x, sizeof(int*) * 3);
// Some code that uses 'a' - ommitted
根据我的理解a
,现在指向的第一个位置x
指向。但是该内存位置现在实际上包含以前x[1]
由于memmove
.
看看这段代码是如何使用的,似乎它a
实际上应该指向之前的值 on x[0]
。我的问题是,a
如果该内存位置现在已被替换为 in ,如何包含先前的值x[1]
?