⚠️ free 完之后,那个指针怎么办
(本条路线统一用 gcc -std=c11 -O0 编译)注意 free 后面紧跟的那一句:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int *p = malloc(sizeof(int));
*p = 9;
int v = *p;
free(p);
/* free 之后 p 还留着那个地址,但那块内存已经不是你的了。
**规矩:free 完立刻置 NULL**,这样"还能不能用"就有了答案 */
p = NULL;
printf("%d/%d\n", v, p == NULL);
return 0;
}
全部评论