永发信息网

C语言中free释放的是分配的那块内存呢,还是连内存中的指向地址也free掉了?

答案:3  悬赏:0  手机版
解决时间 2021-11-17 18:19
  • 提问者网友:書生途
  • 2021-11-16 22:27
C语言中free释放的是分配的那块内存呢,还是连内存中的指向地址也free掉了?
最佳答案
  • 五星知识达人网友:长青诗
  • 2021-11-16 22:48
这段程序的bug问题是 你最后释放p1指向的地址空间不是由malloc开辟的。
全部回答
  • 1楼网友:轻熟杀无赦
  • 2021-11-17 00:29
释放的是 申请的那4个字节的内存,p1本身不会被释放。
  • 2楼网友:天凉才是好个秋
  • 2021-11-16 23:06
free 真正释放的是 p1 指向的那一块用 malloc 申请的内存空间,一般释放了之后我们会将 p1 = NULL;这样是为了防止 p1 变成野指针。free并不会释放 p1 在地址空间申请的本身4个字节的内存,p1 还能正常使用,只不过 free 之后 p1指向了一个随机的内存地址。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯