这两者在C++中有什么区别吗?

5

new char[1]new char 本质上是相同的东西,嗯?

3个回答

15

根据标准,你需要使用delete[]删除char[1],因此不是完全相同的操作。


是的,如果忽略这个“不完全相同”,就会产生未定义行为。 - sharptooth
@sbi:是的,你必须要delete[]new char[0]返回的东西。 - sharptooth

2
创建的对象是一样的,只是使用的(隐形)簿记不同。这意味着您可以以相同的方式“使用”字符,但必须使用相应的删除运算符(deletedelete[])进行“删除”。

-1

不是的,char[1] 是 char* 类型,而 char 是 char 类型。


6
然而,new charchar* 类型,所以这不是区别所在。 - Daniel Earwicker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接