我有一个包含动态Eigen::MatrixXd
的类。我的类的一些构造函数不需要“调整”此数组的大小,即如果在特定情况下初始化对象,则不需要此数据成员。但是,我想检查是否已填充此数据成员(eigen_matrix
)。检查使用:
if(eigen_matrix.size()>0){
//do specific operations on eigen_matrix
}
似乎最终会出现分段错误。我有另一种方法来测试空动态数组吗?
答案 0 :(得分:0)
我正在广泛使用Eigen::MatrixXd
,我检查非零大小,如
if( foo.size() != 0)
我从来没有遇到过段错误,你不应该在你的情况下遇到段错误。可能是段错误来自其他代码行(例如将内容分配给空矩阵或溢出行/列)。你能发布更多代码吗?
答案 1 :(得分:0)
如果.size()
调用失败,很可能是您通过空引用访问eigen_matrix
。检查您尝试使用它的范围的开头&eigen_matrix
。