使用错误数量的元素初始化的C ++ char数组

时间:2014-05-23 22:01:29

标签: c++ visual-studio-2013

当我使用指针初始化cstring时,如下所示:

char* title = new char[endTitleChar - startTitleChar + 1];

...无论方括号中表达式的实际值如何,它都会初始化为char [24],这是从12到1的任何值。

这里发生了什么?

1 个答案:

答案 0 :(得分:7)

我对此表示怀疑。

您获得endTitleChar - startTitleChar + 1分配的字符,但它们具有不确定的值。如果你这样做

char* title = new char[endTitleChar - startTitleChar + 1]();
//                                                    ---||---

你会将它们初始化为0