⚠️ free 完之后,那个指针怎么办

👁️ 0 人浏览 💬 0 人评论 ❤️ 添加收藏

(本条路线统一用 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;
}
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论