#include<stdio.h>
#include<stdlib.h>
int main(){
void *p;
int count = 0;
while((p = malloc(1024)) && count <= 5){
printf("p_%d = %p\n",count,p);
count ++;
}
}
p_0 = 00000000000213C0
p_1 = 0000000000026CC0
p_2 = 00000000000270D0
p_3 = 00000000000274E0
p_4 = 00000000000278F0
p_5 = 0000000000027D00
p1 - p0 = 0x5900;
p2 - p1 = 0x410;
p3 - p2 = 0x410;
p4 - p3 = 0x410;
为什么第一个 p1 - p0 出现如此奇怪的数?
然而, 0x410 转换为十进制数是 1040 而不是 1024 ,为什么?
malloc()函数每次申请,之前已经申请到的内存空间应该不会消失吧?两次连续的申请之间,分配的新的内存空间是不连续的吗?
谢谢