删除TCHAR指针

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)

Luc*_*ore 6

TCHAR *str=TEXT("????, World!");
Run Code Online (Sandbox Code Playgroud)

你没有分配任何东西,所以没有必要删除内存.根本就不要打电话delete[].TEXT是一个宏,而不是一个函数返回你应该自己管理的内存.

这就像之后调用删除一样

char* x = "bla";
delete[] x;
Run Code Online (Sandbox Code Playgroud)

只是非法,因为你没有自己的记忆.