释放内存两次
释放内存两次是未定义的行为,例如
int * x = malloc(sizeof(int));
*x = 9;
free(x);
free(x);
从标准引用(7.20.3.2.C99 的自由功能):
否则,如果参数与之前由 calloc,malloc 或 realloc 函数返回的指针不匹配,或者如果通过调用 free 或 realloc 释放了空间,则行为未定义。
释放内存两次是未定义的行为,例如
int * x = malloc(sizeof(int));
*x = 9;
free(x);
free(x);
从标准引用(7.20.3.2.C99 的自由功能):
否则,如果参数与之前由 calloc,malloc 或 realloc 函数返回的指针不匹配,或者如果通过调用 free 或 realloc 释放了空间,则行为未定义。