代码之家  ›  专栏  ›  技术社区  ›  HiroIshida

特征矩阵在生命周期结束时是否会删除动态分配的数据?

  •  0
  • HiroIshida  · 技术社区  · 4 年前

    请考虑以下代码片段中的程序。首先动态创建数据,然后使用数据创建特征矩阵。在这种情况下,矩阵将释放内存 data 它的生命何时结束?

    我想在 Eigen::Map 操作,复制指针和实际元素 数据 没有被掩盖。因此,希望matrix能够释放内存 数据 .

    #include<Eigen/Core>
    using namespace Eigen;
    int main(){
      double* data = new double [6];
      double* itr = data;
      for(int i=0; i<6; i++){
        *(itr++) = i;
      }
      auto m = Map<MatrixXd>(data, 2, 3);
    }
    
    0 回复  |  直到 4 年前
        1
  •  2
  •   CPPCPPCPPCPPCPPCPPCPPCPPCPPCPP    4 年前

    矩阵不会释放内存 data 当它的生命结束时。

    Eigen无法猜测你的指针位于何处(堆栈/堆或任何地方),以及它是如何分配的。