Ran*_*own 1 c++ delete-operator
我试图做一个支持Unicode的C++ hello世界,但我有点卡住了.
我做了一个指向TCHAR的指针[我认为它是一个char数组],在使用它之后,我尝试删除它.它崩溃说Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse).
检查互联网,有人说这是因为使用了错误的删除.我尝试了两个删除,但它仍然给出相同的消息.
我错过了一些明显的东西吗
我试过的代码:
TCHAR *str=TEXT("????, World!");
delete[] str;
Run Code Online (Sandbox Code Playgroud)
还尝试过:
TCHAR *str=TEXT("????, World!");
delete str;
Run Code Online (Sandbox Code Playgroud)
TCHAR *str=TEXT("????, World!");
Run Code Online (Sandbox Code Playgroud)
你没有分配任何东西,所以没有必要删除内存.根本就不要打电话delete[].TEXT是一个宏,而不是一个函数返回你应该自己管理的内存.
这就像之后调用删除一样
char* x = "bla";
delete[] x;
Run Code Online (Sandbox Code Playgroud)
只是非法,因为你没有自己的记忆.