c++ - 分配数组而不指定大小

标签 c++ arrays language-lawyer new-operator

根据 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/

相关文章:

c++ - 选择什么 VS 2010 模板?

c++ - G++ 和 __attribute__((optimize)) 不改变调试器行为

java - 打乱数组时出现问题 - 返回 null 而不是随机整数

c# - 最长排序子序列的长度

c - C 中 main 的参数数量限制

c++ - 在 C/C++ 中取消引用 char 指针?

c++ - 如何使我的函数对重载的 iostream 提取运算符具有粘性

java - 将 C 语句转换为 Java (Array[][] != 0)

java - JLS 的哪一部分指定您不能从 List<?将 List<Superclass>> 扩展到 List<List<Subclass>>?

c++ - C++ 标准是否明确禁止在通过 constexpr 成员函数指针的调用中使用默认参数?