根据 C++ 标准,以下结构是否有效?我可以用这条语句后的 arr 做什么?
char* arr = new char[];
提前致谢。
最佳答案
不,这是不允许的。 [expr.new]/1 中 new-expression 的语法指定
noptr-new-declarator:
[
expression]
attribute-specifier-seq opt
noptr-new-declarator [ constant-expression ] attribute-specifier-seqopt
很明显,您的代码中括号之间没有表达式。而且它也没有意义:你怎么能分配一个未知长度的数组?
如果你需要一个动态改变大小的数组,使用std::vector
.
关于c++ - 分配数组而不指定大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26957290/