int main()
{
char *p = new char[100];
strcpy(p, "Test");
cout << "Before heap corruption: " << p << endl;
p[150] = '\0';
cout << "after heap corruption: " << p;
delete p;
getchar();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在上面提到的代码中,我在一个不是我的内存位置写'\ 0',即使这样也没有抛出异常.如果使用注释delete p运行上面的代码,则不会抛出任何异常.但是如果它被取消注释,则抛出附加的异常.因此,删除可验证内存所有权.那么,我是否可以知道eaxctly删除是如何工作的以及为什么在写出内存块时有很多验证
