当我使用指针初始化cstring时,如下所示:
char* title = new char[endTitleChar - startTitleChar + 1];
...无论方括号中表达式的实际值如何,它都会初始化为char [24],这是从12到1的任何值。
这里发生了什么?
答案 0 :(得分:7)
我对此表示怀疑。
您获得endTitleChar - startTitleChar + 1
分配的字符,但它们具有不确定的值。如果你这样做
char* title = new char[endTitleChar - startTitleChar + 1]();
// ---||---
你会将它们初始化为0
。