можете ли вы увидеть какую-либо ошибку в моем коде?
Даже если вы уверены, что ваши индексы находятся в пределах диапазона, в коде, который вы нам показали, нет ничего, что могло бы действительноэто так, поэтому я заменил бы ваш массив следующим:
#include <array>
class AddressList{
std::array<std::array<int, 2>, 20> WaterMeterIDs;
public:
inline constexpr int& at(size_t row, size_t col) {
return WaterMeterIDs.at(row).at(col);
}
inline constexpr int const& at(size_t row, size_t col) const {
return WaterMeterIDs.at(row).at(col);
}
};
Затем получил бы доступ к массиву через функцию at()
:
// set value
m_address.at(i,j) = ...
// log value
qDebug() << m_address.at(i,j);
Это должно убедиться, что ничегопроскользнул сквозь трещины относительно вашего 2D-массива.
И я бы проверил это ui->tableWidget->columnCount() >= 2
перед циклом, просто чтобы исключить это тоже:
int colcount = std::min(2, ui->tableWidget->columnCount());
for(int j = 0; j < colcount; ++j) {
...