首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

free有关问题

2012-05-16 
free问题bool pop(PSTACK pS, int * pVal){if ( empty(pS) ){return false}else{PNODE r pS-pTop*pVa

free问题
bool pop(PSTACK pS, int * pVal)
{
if ( empty(pS) )
{
return false;
}
else
{
PNODE r = pS->pTop;
*pVal = r->data;
pS->pTop = r->pNext;
free(r);
r = NULL;
}
}

这是我出栈的一个子函数,为什么在释放r以后还要给r赋空值,啰嗦了么?

[解决办法]
不罗嗦,释放的是r所指向的内存,然后r就成了野指针,将它指向空,很好的习惯。
[解决办法]
你要明确告诉他 他是没有人要的还是 不知道他父母是谁 免得填家长姓名的时候随便填了个名字 结果那个名字是少林寺方丈的名字怎么办 。。。
[解决办法]

探讨
不罗嗦,释放的是r所指向的内存,然后r就成了野指针,将它指向空,很好的习惯。

[解决办法]
习惯这东西,要接触多了!就自然而然了
[解决办法]
free释放掉后指针还是指向原来的地址,这个时候这个指针就编程野指针了

把指针置为NULL是为了防止释放掉 ,后续还是可以解引用导致内存不可访问出现SIGSEGV信号

热点排行