变长数组和 alloca

定义:
变长数组是指在编译时不能确定数组长度,程序在运行时需要动态分配内存空间的数组。

优点:
变长数组具有浑然天成的语法,变长数组和 alloca() 也都很高效。

缺点: 变长数组和 alloca() 不是标准C++的组成部分,更重要的是,它们在堆栈( stack)上根据数据分配大小可能导致难以发现的内存泄漏: “在我的机器上运行的好好的,到了产品中却莫名其妙的挂掉了”。

结论:
使用变长数组和 alloca(),如果确实有需要,使用安全的分配器( allocator) ,如 scoped_ptr / scoped_array。

你可能感兴趣的:(变长数组和 alloca)