;
C语言
想问一下
char *A = (char *)malloc(255);
之后还需要A = NULL.
free(A)....;吗
C语言 想问一下 char *A = (char *)malloc(255); ...... free(A);
答案:5 悬赏:40
解决时间 2021-02-21 14:33
- 提问者网友:时间却是纷扰
- 2021-02-21 00:17
最佳答案
- 二级知识专家网友:不服输就别哭
- 2021-02-21 00:36
加上最好
全部回答
- 1楼网友:野心和家
- 2021-02-21 05:32
从安全角度和良好的编程风格而言,最好还是加上
所有的内存分配都必须到运行的时候才进行,运行的时候才占用内存
- 2楼网友:时光不老我们不分离
- 2021-02-21 04:09
看这个变量的生命期吧 如果它很短没必要加的 (但为了养成好的习惯最好还是加上)
free(A);只是把它所指向的空间释放了 但这个指针实际上还指向这个地址,万一不小心用到的话就悲剧了。
- 3楼网友:冷眼_看世界
- 2021-02-21 02:34
际上你可以要也可以不要;/
这样方便下面判断
if(A==NULL) ///那么就是数据已经释放掉
{
/释放后的相关操作
}
else
{
/。
但有些时候你需要判断A是否已经释放掉的话
那么你就要A=NULL
- 4楼网友:零负荷的放任
- 2021-02-21 01:08
自上而下顺序执行肯定是后于if (status) return 0;执行啊 而且如果if (status) return 0执行了,函数返回,定义a的语句char *a =(char *)malloc(255);就不会执行了。
分配内存的时间的话,得看是动态还是静态吧
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |