我的问题是为什么数组的地址与其第一个位置的地址不同?
我正在尝试编写自己的 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] 每次都是一些随机地址。我期待地址相互匹配。谁能解释为什么不是这样?