int main() {
char *p = (char *)malloc(10);
char *newp = (char *)realloc(p, 20); // realloc不能保证newp与p指向同一块内存
if (newp) {
p = newp;
}
free(p);
return 0;
}
上述代码,如果注释4~6行将引发内存泄漏,free只释放了p生成的内存空间,而realloc生成的内存没有释放。