gpt4 book ai didi

c++ - Eigen Map - 它是否拥有数据指针?

转载 作者:行者123 更新时间:2023-11-30 01:19:03 24 4
gpt4 key购买 nike

我正在使用 Map 类创建矩阵:

float* d = new float[rows*cols];
// ... getting data into d
Eigen::Map<Eigen::MatrixXf>(d, rows, cols);

我的问题是 - Map 是否取得数据指针的所有权并在完成后将其删除?还是它会复制数据,我应该在创建 map 后自行释放它吗?

谢谢。

最佳答案

不,Map 不取得所有权,因此您仍需负责释放内存。实际上,由于以下几个原因,相反的情况是不可能的:

  • Map 无法知道内存是如何分配的
  • 您只能映射已分配缓冲区的一个子范围

此外,下面会很奇怪:

 float *d = new float[10];
// ...
VectorXf v = ...;
v = v + Map<VectorXf>(d,10);
// now d is a dead pointer

不可能!

关于c++ - Eigen Map - 它是否拥有数据指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21496499/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com