我正在用Map类创建一个Matrix :
float* d = new float[rows*cols];
// ... getting data into d
Eigen::Map<Eigen::MatrixXf>(d, rows, cols);
Run Code Online (Sandbox Code Playgroud)
我的问题是 - 确实Map取得数据指针的所有权并在完成后将其删除?或者它是否复制数据,我应该在创建地图后自己释放它吗?
谢谢.
不,Map不取得所有权,所以你仍然有责任释放记忆.实际上,由于以下几个原因,相反的情况是不可能的:
Map 不知道内存是如何分配的而且,以下将是非常奇怪的:
float *d = new float[10];
// ...
VectorXf v = ...;
v = v + Map<VectorXf>(d,10);
// now d is a dead pointer
Run Code Online (Sandbox Code Playgroud)
没门!
| 归档时间: |
|
| 查看次数: |
1060 次 |
| 最近记录: |