gpt4 book ai didi

c - 为什么指针在 free() 之后不为空(没有复制指针)

转载 作者:太空宇宙 更新时间:2023-11-04 06:14:00 25 4
gpt4 key购买 nike

<分区>

我只使用 main() 函数。不复制任何指针。为什么 free() 函数没有得到 NULL 值?为什么我可以检查我的 wariable 是满的还是空的?

#include <stdio.h>
#include <stdlib.h>

int main()
{
int *e = NULL;

printf("before e=%p\n",(void *)e);
e = malloc(sizeof(int));
*e = 7;
printf("after, e=%p\n",(void *)e);
if(e == NULL) { printf("Problemy z pamięcia\n"); return 0; }
printf(" value = %d\n",*e);

free(e);
printf("after free, e=%p\n",(void *)e);
if(e == NULL) printf("is NULL\n");

return 1;
}

结果

before e=0
after, e=464027a0
value = 7
after free, e=0x7f82464027a0

为什么 if(e==NULL) 不是真的?怎么做到的?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com