首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除TCHAR指针

删除TCHAR指针
EN

Stack Overflow用户
提问于 2012-04-11 15:29:03
回答 2查看 2.7K关注 0票数 1

我正在尝试做一个支持Unicode的C++ hello world,但我有点卡住了。

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

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

我是不是错过了什么明显的东西?

我尝试过的代码:

代码语言:javascript
复制
TCHAR *str=TEXT("おはよう, World!");
delete[] str;

还尝试了:

代码语言:javascript
复制
TCHAR *str=TEXT("おはよう, World!");
delete str;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-11 15:30:30

代码语言:javascript
复制
TCHAR *str=TEXT("おはよう, World!");

您没有分配任何内容,因此不需要删除内存。简单地说,不要调用delete[]TEXT是一个宏,而不是一个返回一些你应该自己管理的内存的函数。

这就像调用delete一样

代码语言:javascript
复制
char* x = "bla";
delete[] x;

这是非法的,因为你并不拥有内存。

票数 6
EN

Stack Overflow用户

发布于 2012-04-11 15:31:24

如果你调用了delete,你只需要调用new,因为你没有调用,这里不需要调用delete

这里的字符串是在实现定义的内存区而不是动态内存(也称为堆)上创建的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10101651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档