比如指针L,用SqList *L;声明,但是还没有分配空间,这时候线性表应该是不存在的,或者free(L)之后,L也不复存在,但是,对于一个线性表指针,如何判断它的存在性?
參考答案:没办法,对任何一个指针,你没有办法判断它是不是已经指向一块分配的空间,一个折衷的办法是,对任何的指针,声明的时候令它为NULL,然后判断它是否为NULL。
如
SqList *L = 0;
L = (SqList*)malloc(sizeof(SqList));
if(!L) //如果L未分配空间,直接return
{
return 0;
}
同样,一个好的习惯是在free后,立刻令该指针为0。