当前位置:  开发笔记 > 编程语言 > 正文

是否需要销毁char*="string"或char*= new char [6]?

如何解决《是否需要销毁char*="string"或char*=newchar[6]?》经验,为你挑选了2个好方法。

我认为这char* = "string"是相同的char* = new char[6].我相信这些字符串是在堆而不是堆栈上创建的.因此,当我使用它们或者它们被自己摧毁时,我是需要销毁它们还是释放它们的记忆?



1> Mike McQuaid..:

不需要.当您使用malloc函数(在C中)或new运算符(在C++中)自己手动分配内存时,您只需手动释放字符串.如果不使用mallocnew,那么char*将在堆栈上创建或作为编译时常量.



2> 小智..:

不,当你说:

const char* c = "Hello World!";

您将c分配给"预先存在的"字符串常量,该常量与以下内容不同:

char* c = new char[6];

只有在后一种情况下才在堆上分配内存.所以当你完成后你会打电话给删除.

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有