问题一:
在编写代码的时候,我遇到了这样一个问题:定义一个指针,将这个指针指向另外一个指针,在完成特定功能的操作之后,定义的指针指向的那个指针可能已经被释放,而这时,如果需要释放定义的这个指针,就会报错。
代码如下:
int* position=new int [10];
position=pos;
.
.
.
delete pos;
delete position;// 这里会报错
定义了一个int型指针position,position指向了pos,一些操作之后pos被释放,这之后再释放position就会出错。
解决方法如下:
int* position=new int [10];
position=pos;
delete pos;
position=NULL; // 先将position指向空指针
delete position;
为什么会出现这种状况,我的理解是:
由于position指向pos,而pos被释放,position指向的内容未定义,再delete position就会报错