我的问题是为什么数组的地址与其第一个位置的地址不同?
我正在尝试编写自己的 malloc,但一开始我只是分配了一大块内存并处理了这些地址。我的代码大致如下所示:
#define BUFF_SIZE 1024
static char *mallocbuff;
int main(){
mallocbuff = malloc(BUFF_SIZE);
printf("The address of mallocbuff is %d\n", &mallocbuff);
printf("The address of mallocbuff[0] is %d\n", &mallocbuff[0]);
}
&mallocbuff 每次运行都是同一个地址。 &mallocbuff[0] 每次都是一些随机地址。我期待地址相互匹配。谁能解释为什么不是这种情况?
最佳答案
&mallocbuff
是命名变量 mallocbuff
的地址。 &mallocbuff[0]
是 mallocbuff
指向的缓冲区中第一个元素的地址,您使用 malloc()
分配了它。
关于c - 数组的地址与数组[0]的地址 - C语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2705329/