c ++升级检查空动态数组

时间:2014-05-16 04:15:15

标签: c++ arrays boost segmentation-fault eigen

我有一个包含动态Eigen::MatrixXd的类。我的类的一些构造函数不需要“调整”此数组的大小,即如果在特定情况下初始化对象,则不需要此数据成员。但是,我想检查是否已填充此数据成员(eigen_matrix)。检查使用:

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

似乎最终会出现分段错误。我有另一种方法来测试空动态数组吗?

2 个答案:

答案 0 :(得分:0)

我正在广泛使用Eigen::MatrixXd,我检查非零大小,如

if( foo.size() != 0)

我从来没有遇到过段错误,你不应该在你的情况下遇到段错误。可能是段错误来自其他代码行(例如将内容分配给空矩阵或溢出行/列)。你能发布更多代码吗?

答案 1 :(得分:0)

如果.size()调用失败,很可能是您通过空引用访问eigen_matrix。检查您尝试使用它的范围的开头&eigen_matrix