我对malloc
后面跟free
。
char *p = (char *) malloc(100);
p++;
free(p);
在上面的场景中free(p)
会释放多少字节的内存?是99还是100?
答案 0 :(得分:6)
这是未定义的行为。 free()
的联合帮助页(强调我的):
free()函数释放ptr指向的内存空间, 必须由之前调用malloc(),calloc()或 realloc的()。否则,或者如果之前已经调用了free(ptr), 发生未定义的行为。如果ptr为NULL,则不执行任何操作。