vectorabc(vector >& matrix) { int n = matrix.size(); int m = matrix[0].size(); if (matrix.size() == 0 || matrix[0].size() == 0) { return {}; }
以上情况当martix是空时,会报错:
Line 1033: Char 9: runtime error: reference binding to null pointer of type ‘std::vector
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /usr/bin/…/lib/gcc/x86_64-linux-gnu/9/…/…/…/…/include/c++/9/bits/stl_vector.h:1043:9
原因是int m = matrix[0].size();这句话中的matrix[0]是不存在的所以不能通过
修改方式有两个:
1、使用empty()
vectorabc(vector >& matrix) { if (matrix.empty()) { return {}; } int n = matrix.size(); int m = matrix[0].size();
2、先判断
vectorabc(vector >& matrix) { if (matrix.size() == 0 || matrix[0].size() == 0) { return {}; } int n = matrix.size(); int m = matrix[0].size();



