delete []pVertices 以后就不能再指向新地址了
delete []pVertices 之后就不能再指向新地址了?这样, pVertices指向一个数组, 我想先删除数组, 然后再让pV
delete []pVertices 之后就不能再指向新地址了?
这样, pVertices指向一个数组, 我想先删除数组, 然后再让pVertices指向一个新数组:
C/C++ code delete []pVertices; NumberOfPointSet = PointSet.size(); pVertices = new CVector3 [NumberOfPointSet];
但是后续程序出错. 当我删除delete []pVertices; 这句话, 程序就运行正确.
(不是说delete []pVertices 只是删除new的数组而不删除 pVertices指针身吗?)
[解决办法]delete出错,一般都是越界和指针绝对值改变造成的,去查前面的逻辑
[解决办法]NumberOfPointSet = PointSet.size();
你这个PointSet可以就算pVertices指向的东西吧,你如果已经释放了,再求大小是肯定会出错的,把这一句放到delete []pVertices;之前试试。
[解决办法]char* pchar= new char[10];
strcpy(pchar,"hello");
delete []pchar;
pchar= new char[5];
strcpy(pchar,"world");
cout<<pchar<<endl;
我这个就可以,你自己再看看
[解决办法]单步调试,确定出错的具体位置再修改之。
[解决办法]单独提出这三个语句,反复调用看会不会出错
如果不出错,说明pVertices使用中越界了
[解决办法]你是否在代码中修改过pVertices指针?如果修改过delete[]pVertices;时应该先恢复原来指针的地址
[解决办法]调用操作系统内存管理new A,delete B就好象借邻居碗还盘子一样。(^_^)
[解决办法]