c++ boost检查空动态数组

c++ boost checking for an empty dynamic array

本文关键字:动态 数组 检查 boost c++      更新时间:2023-10-16

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

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

似乎结束了分段断层。有没有另一种方法来测试一个空的动态数组?

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

if( foo.size() != 0)

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

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