65,210
社区成员
发帖
与我相关
我的任务
分享
如何判断一个指针的是否有指向,是把它赋值为0还是NULL。
if(ptr == NULL) or if(ptr == 0)
如下的声明:
int *bb=0;
是表示bb这个指针没有指向任何地方吗?
但是为何当cout < <*bb < <endl; //不知道楼主用的什么编译器 我在VS2005下出错 没分配内存取值
是会输出时bb中有存储数值呢?知道一个指针相当于一个整型的大小,一定数值。
小弟不明白的是:
如何判断一个指针是否指向。
判断的话用上面的if就OK
但是有指向不代表一定不会出错
比如 int *a = new int(10);
delete a;
cout << *a << endl;
这时候是可能出错的 因为a指向的内存可能已被其它程序使用
int *a=new int;
a=90; // 这里错误,改变了指针a,前面申请的内存不会被释放。或许应该是*a = 90?
delete a; // 危险,这里a指向的内存已经不是int *a=new int;申请的内存了
if(a==0) // 用null判断比较好,这样可读性强
cout < <"a无指向";
else
cout < <"a有指向";