C++ 是否为特征值';s矩阵删除动态分配的数据时';她的生命结束了? 请考虑以下代码段中的过程。首先动态创建数据,然后使用数据创建特征矩阵。在这种情况下,当矩阵的生存期结束时,它将释放数据的内存

C++ 是否为特征值';s矩阵删除动态分配的数据时';她的生命结束了? 请考虑以下代码段中的过程。首先动态创建数据,然后使用数据创建特征矩阵。在这种情况下,当矩阵的生存期结束时,它将释放数据的内存,c++,memory-leaks,eigen,delete-operator,eigen3,C++,Memory Leaks,Eigen,Delete Operator,Eigen3,我猜在Eigen::Map操作中,指针被复制,而数据的实际元素没有被复制。因此,希望矩阵释放数据的内存 #包括 使用名称空间特征; int main(){ 双精度*数据=新双精度[6]; 双*itr=数据; 对于(int i=0;i矩阵,当其生存期结束时,矩阵不会释放数据的内存 Eigen无法猜测您的指针位于何处(堆栈/堆或任何地方),以及它是如何分配的。如果Map知道您使用了new[]来分配数据呢?如果它只是一个简单的double数组呢?除非文档说明您必须使用new[]要分配数据,请始终假定您

我猜在
Eigen::Map
操作中,指针被复制,而
数据
的实际元素没有被复制。因此,希望矩阵释放
数据的内存

#包括
使用名称空间特征;
int main(){
双精度*数据=新双精度[6];
双*itr=数据;

对于(int i=0;i矩阵,当其生存期结束时,矩阵不会释放
数据的内存


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

如果
Map
知道您使用了
new[]
来分配数据呢?如果它只是一个简单的
double
数组呢?除非文档说明您必须使用
new[]
要分配数据,请始终假定您有责任调用
delete[]