关于指针释放的问题

来源:百度知道 编辑:UC知道 时间:2024/05/18 04:40:00
我写了这么一个代码:
CPoint *pt = new CPoint;
for(int row = 0; row < posArray.GetCount(); row ++)
{
pt[row] = posArray[row];
}
如何删除pt这个指针呢?我用delete pt;不行。

new 和 delete是配对使用的,new -- delete,new[]--delete[]
楼主这个程序用new的时候之分配了一个CPoint大小的空间,但是在for循环中使用了posArray.GetCount()个地址,编译是可以通过的,但是在运行的时候会出问题,因为不能够确保之后写入的地址和数据是否安全。
应该修改为:
CPoint *pt = new CPoint[posArray.GetCount()];
......
delete []pt;

pt[row] = posArray[row]; ??????
怎么变成指针数组了?

pt.free();

delete[] pt;