如何解决为什么当我调用函数时,带有 Eigen::Matrx 的函数的输入地址会发生变化?
如下图所示,我在 Visual Studio 2019 的 IDE 中以发布模式构建了我的代码。进入test函数时,pointer和tmp指向的地址是不一样的。如果我删除变量 Z 的行,它可以正常工作。我的问题是如何修改代码以使其正常工作。非常感谢。
燕鸣
#include "Eigen\core"
void test(int* pointer)
{
pointer[0] = 1;
const Eigen::Matrix<double,7,7> matLambda = Eigen::Matrix<double,7>::Identity();
Eigen::Matrix<double,7> x;
x = matLambda;
Eigen::Matrix<double,7> y;
y = matLambda;
Eigen::Matrix<double,7> z;
z = matLambda;
}
int main()
{
int* tmp = new int[10];
test(tmp);
delete [] tmp;
}
下图显示删除变量z后,程序正常运行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。