不允许使用变长数组和 alloca().
优点:
变长数组具有浑然天成的语法. 变长数组和 alloca() 也都很高效.
缺点:
变长数组和 alloca() 不是标准 C++ 的组成部分. 更重要的是, 它们根据数据大小动态分配堆栈内存, 会引起难以发现的内存越界 bugs: “在我的机器上运行的好好的, 发布后却莫名其妙的挂掉了”.
结论:
改用更安全的分配器(allocator),就像 std::vector 或 std::unique_ptr
本文讨论了变长数组及alloca()在C++中的使用问题,指出它们虽然语法简洁且高效,但因非标准特性及可能引发难以察觉的内存溢出bug而不被推荐。建议采用如std::vector或std::unique_ptr等更安全的内存管理方案。
不允许使用变长数组和 alloca().
优点:
变长数组具有浑然天成的语法. 变长数组和 alloca() 也都很高效.
缺点:
变长数组和 alloca() 不是标准 C++ 的组成部分. 更重要的是, 它们根据数据大小动态分配堆栈内存, 会引起难以发现的内存越界 bugs: “在我的机器上运行的好好的, 发布后却莫名其妙的挂掉了”.
结论:
改用更安全的分配器(allocator),就像 std::vector 或 std::unique_ptr
1117

被折叠的 条评论
为什么被折叠?