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就成了野指针,将它指向空,很好的习惯。
[解决办法]
你要明确告诉他 他是没有人要的还是 不知道他父母是谁 免得填家长姓名的时候随便填了个名字 结果那个名字是少林寺方丈的名字怎么办 。。。
[解决办法]
[解决办法]
习惯这东西,要接触多了!就自然而然了
[解决办法]
free释放掉后指针还是指向原来的地址,这个时候这个指针就编程野指针了
把指针置为NULL是为了防止释放掉 ,后续还是可以解引用导致内存不可访问出现SIGSEGV信号