不允许使用变长数组和 alloca().
优点:
变长数组具有浑然天成的语法. 变长数组和 alloca() 也都很高效.
缺点:
变长数组和 alloca() 不是标准 C++ 的组成部分. 更重要的是, 它们根据数据大小动态分配堆栈内存, 会引起难以发现的内存越界 bugs: “在我的机器上运行的好好的, 发布后却莫名其妙的挂掉了”.
结论:
改用更安全的分配器(allocator),就像 std::vector 或 std::unique_ptr
不允许使用变长数组和 alloca().
优点:
变长数组具有浑然天成的语法. 变长数组和 alloca() 也都很高效.
缺点:
变长数组和 alloca() 不是标准 C++ 的组成部分. 更重要的是, 它们根据数据大小动态分配堆栈内存, 会引起难以发现的内存越界 bugs: “在我的机器上运行的好好的, 发布后却莫名其妙的挂掉了”.
结论:
改用更安全的分配器(allocator),就像 std::vector 或 std::unique_ptr