标签: c static-memory-allocation
std::runtime_error
数组“arr”的内存应该在编译时分配,但在这种情况下,它从用户获取“a”的值(运行时)并为数组分配相同的大小。请澄清。
答案 0 :(得分:6)
是的,这被称为可变长度数组。自C99以来,它一直是C的标准。
所以不,不应该在编译时为这样的代码分配内存。当然,这是不可能的。
此外,应使用size_t打印sizeof类型的值(如%zu运算符生成的值)。
size_t
sizeof
%zu