我有一个像这样的问题。我想创建一个由数组支持的犰狳矩阵,这很好,很容易做到。然而,当我试图将所得到的垫子保存在犰狳垫阵列中时。对底层c数组的更改不再更改mat。示例代码:
#include<iostream>
#include<armadillo>
using namespace std;
using namespace arma;
int main() {
Mat<float>* test = (Mat<float>*)malloc(sizeof(Mat<float>));
float *Amem = (float*) malloc(4*sizeof(float));
Amem[0] = 0; Amem[1] = 1; Amem[2] = 2; Amem[3] = 3;
Mat<float> A = Mat<float>(Amem, 2, 2, false, false);
test[0] = A;
test[0].print();
Amem[1] = 100;
test[0].print();
A.print();
free(test);
free(Amem);
return 0;
}
运行以下代码时,会产生:
test[0] = 0 2
1 3
test[0] = 0 2
1 3
A = 0 2
100 3
为什么不是A并且测试[0]相同?反正有没有让他们一样吗?