关于一个指针置空的问题,有点搞。
本帖最后由 leezjl 于 2013-09-15 16:04:21 编辑
struct MyStruct
{
int* num;
};
MyStruct ms;
ms.num = new int(10);
vector<MyStruct> vec;
vec.push_back(ms);
MyStruct ms1 = *(vec.begin());
ms1.num = NULL;//这里把num置null没意义
MyStruct ms2 = *(vec.begin());
cout<<*ms2.num<<endl;//num指针还是有效
当我把ms1从vec里取出来的时候,然后置空了。实际上这步操作没什么意义。那么该怎么操作,才能正确的吧vec里的ms.num给置空呢?
我这里只是想回收vec内ms结构体里的num指针,并不想把它delete,因为num所指内存里的数据我在别的地方还要用的。 指针 struct 数据
[解决办法]
不要貌似,你试过了?
[解决办法]
这样吧
MyStruct& ms1 = *(vec.begin());
另外“vec[0].num = NULL;”是有用的楼主