C++ 如何判断一个指针是否指向一个有效的对象

2024-11-29 05:34:05
推荐回答(2个)
回答1:

判断一个指针是否有效的办法是判断它是否为空指针: {//指针有效}else{//指针无效}然而这样的判断方法需要有一个前提保证的,即是前面所说的在声明指针时如果没有明确指向一个已知的变量,则将其置空,在不再需要使用这个指针时也将其置空。如果该指针指向一块动态分配的内存空间,在释放后也应该将其置空。在这个前提下,前面判断才是正确的

回答2:

  可以在通过一个指针删除任何一个对象后,都把这个指针置成NULL。
  另外,还没有指向任何对象的指针也把它初始化成NULL。
  这样,就可以:
if(p)
{
……
}
else
{
……
}

  在声明了指针变量以后,就可以利用该指针变量来对所指向的对象进行操纵,当然在进行操纵前必须保证所操纵的对象是有效的,即该指针不为空,否则会引起“内存访问冲突”的错误,导致程序崩溃。
  判断一个指针是否有效的办法是判断它是否为空指针:
  {//指针有效}else{//指针无效}然而这样的判断方法需要有一个前提保证的,即是前面所说的在声明指针时如果没有明确指向一个已知的变量,则将其置空,在不再需要使用这个指针时也将其置空。如果该指针指向一块动态分配的内存空间,在释放后也应该将其置空。在这个前提下,前面判断才是正确的