【发布时间】:2017-08-08 14:51:13
【问题描述】:
我需要在初始化非常量大小时的 C++ char 数组。大小必须是非常量的,因为它是从函数生成的,并且不能用于向量,因为此 char 数组将用于读取和写入文件。示例:
int i = functionToGetvalue();
unsigned char ch[i];
file1 >> ch;
file2 << ch;
【问题讨论】:
-
你不能那样做。你需要使用
new(完成后不要忘记delete[]) -
"不能使用向量,因为这个字符数组将用于读取和写入文件。" - 你可以用向量或字符串来做到这一点。
-
functionToGetvalue是做什么的?您也许可以将其标记为constexpr。 -
不能使用向量,因为这个字符数组将用于读写文件。 -- 谁给你这个虚假信息?
std::vector<unsigned char> c(i); unsigned char *ch = &c[0]; file1>> ch; file2 << ch;. -
可变长度数组在 C++ 中是不合法的,但某些编译器支持作为扩展。
标签: c++ arrays initialization constants