我试图做一个支持Unicode的C++ hello世界,但是我有点受阻。

我创建了一个指向TCHAR的指针[我认为它是一个char数组],并在使用它之后尝试删除它。说Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)崩溃。

检查互联网时,有人说这是因为使用了错误的删除。我尝试了两次删除,但仍然给出相同的消息。

我错过了明显的事情吗?

我试过的代码:

TCHAR *str=TEXT("おはよう, World!");
delete[] str;

还尝试了:
TCHAR *str=TEXT("おはよう, World!");
delete str;

最佳答案

TCHAR *str=TEXT("おはよう, World!");

您无需分配任何内容,因此无需删除内存。只是不要调用delete[]TEXT是一个宏,而不是一个返回您应该管理的内存的函数。

就像在之后调用delete
char* x = "bla";
delete[] x;

只是非法的,因为您不拥有内存。

关于c++ - 删除TCHAR指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10101651/

10-12 07:36
查看更多