有没有办法判断一个指针是否已经分配空间?下面的 p 指针我还没找到有办法可以判断他是否分配空间
int * p; // 如何判断是否已分配?
int * p1 = nullptr; // 可通过 if(nullptr == p1) 来判断
对于int * p这种定义的指针变量,没有直接的方法可以判断它是否已经分配了内存空间。
这是因为在C/C++中,指针变量的定义和内存分配是两个独立的操作。只有在指针变量使用new、malloc等进行动态内存分配之后,才会真正指向一块内存空间
没办法判断,只能说初始化的时候指定 NULL,释放了以后也设置为NULL。那么可以用 p == NULL判断
p == NULL
有没有分配空间主要看有没有被初始化,被初始化了就是分配了空间。
第一个没有分配空间;
第二个是已经分配了空间。
void DestroyList(LinkList *&L)
{
LinkList *pre=L->next,*p=pre->next;
while (p != L)
{
delete pre;
pre = p;
p = p->next;
}
delete pre;
delete p;
}