比如下面这样:
int* P = new int [10];
//然后我想通过指针删除中间节点
int * q = &p[2];
delete q;
编译器报错:_BLOCK_TYPE_IS_VALID
我想请问一下为什么会出错呢?
delete q不能这么写
只能整体释放P
要不然你用链表
delete q不能这么写
只能整体释放P要不然你用链表
是因为p是分配的连续空间所以不能单独删除p【1】吗?
这编译器好。VS都编译不报警,运行时出错
这数组的操作权限由p所占有,p[2]的地址权限也属于p,只能通过p进行操作,q应该是不存在这种权限。随便说说不知道对不对,哈哈。
int main()
{
int* P = new int [10];
//然后我想通过指针删除中间节点
int * q = &P[2];
delete P;
return 0;
}
new 谁,delete 谁。。