2014-05-16 2 views
0

동적 인 Eigen::MatrixXd을 포함하는 클래스가 있습니다. 내 클래스의 생성자 중 일부는이 배열의 크기를 조정할 필요가 없습니다. 즉, 객체가 특정 경우에 초기화되는 경우이 데이터 멤버가 필요하지 않습니다. 그러나이 데이터 멤버 (eigen_matrix)가 채워 졌는지 확인하고 싶습니다. 확인 사용 :빈 동적 배열에 대한 C++ 부스트 확인

if(eigen_matrix.size()>0){ 
     //do specific operations on eigen_matrix 
} 

끝나는 것 같습니다. 빈 동적 배열을 테스트 할 다른 방법이 있습니까?

답변

0

나는 광범위하게 Eigen::MatrixXd를 사용하고 그리고 내가 segfault의 없었어

if(foo.size() != 0) 

같은 비 제로의 크기를 확인하고 귀하의 경우 세그먼트 폴트를하지합니다. 아마도 segfault는 다른 행의 코드 (빈 행렬에 항목을 할당하거나 행/행을 오버플로하는 것과 같음)에서 가져온 것일 수 있습니다. 더 많은 코드를 게시 할 수 있습니까?

0

.size() 호출에 실패하면 null 참조를 통해 eigen_matrix에 액세스하는 것이 좋습니다. 범위를 시작할 때 &eigen_matrix을 확인하십시오.