我试图做一个支持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/