简单直接替换2D阵列

时间:2016-03-01 02:15:58

标签: c++ unique-ptr

我继承了具有许多函数(不是类成员)的代码,避免像这样溢出堆栈(注意:值不会保存在函数调用上,因此语义static是不必要的):

void func()
{
    static BIGSTRUCT foo[BIGNUM];
    static BIGGERSTRUCT bar[BIGGERNUM][BIGGERNUM];
    // etc...
}

对于一维情况,std::unique_ptr<BIGSTRUCT []> foo(new BIGSTRUCT[BIGNUM]);有效,但有一种解决二维情况的简单方法吗?

1 个答案:

答案 0 :(得分:2)

std::unique_ptr可以是std::unique_ptr。甚至是二维缓冲区。

但是,对于大多数遗留代码的情况,最好只使用std::vector替换数组,因此您不必担心内存泄漏。

相关问题