I 이런 고유치를 이용한 행렬 만들면 :memcpy가 고유 행렬 데이터를 복사하지 못하고 std :: copy가 성공하는 이유는 무엇입니까?
double * d = M.data();
for(int i = 0;i<M.size();i++)
{
std::cout<<*d<<" ";
d++;
}
std::cout<<std::endl;
가 생성 :
Eigen::MatrixXd M(3,3);
M<< 1.0, 4.0, 7.0, 2.0, 5.0, 8.0, 3.0, 6.0, 9.0 ;
std::cout<<M<<std::endl;
가
1 4 7
2 5 8
3 6 9
I는 각 요소를 인쇄 데이터를 통해 포인터 걸을 수 생산을
1 2 3 4 5 6 7 8 9
제가
double data_copy[9];
std::copy(M.data(),M.data()+M.size(),data_copy);
for(int i = 0;i<M.size();i++)
{
std::cout<<data_copy[i]<<" ";
}
std::cout<<std::endl;
그러나
1 2 3 4 5 6 7 8 9
생산 : 515,
제가 또한 스택에서 동일한 유형의 배열에 복사 표준 : 카피를 사용하여 해당 배열의 요소를 인쇄 memcpy를 사용하여 동등한 복사본을 만들 수 없습니다.
double data_memcopy[9];
memcpy(data_memcopy,M.data(),M.size());
for(int i = 0;i<M.size();i++)
{
std::cout<<data_memcopy[i]<<" ";
}
std::cout<<std::endl;
이
1 0 0 0 0 0 0 0 0
방어 적이기 내가 그것을해야 기대하는 일을하지 왜 어떤 좋은 이유 생산 : 이것은 단지 첫 번째 요소를 복사 관리?