Không thể đọc giá trị con trỏ trong c++
Xin chào mọi người, mình có viết một chương trình nhỏ để giải giải Soduku 9x9. Trong khi làm mình bị mắc một lỗi không thể đọc giá trị từ con trỏ null. Mình đã tìm kiếm trên internet các trường hợp tương tự nhưng vẫn không thể hiểu được lý do chương trình của mình gặp lỗi. Và không phải lần nào chạy chương trình cũng bị lỗi này. Rất mong mong người chia sẻ kinh nghiệm để debug lỗi này, cám ơn mọi người rất nhiều :
Meassage lỗi :
First-chance exception at 0x0115BAEA in Soduku9x9.exe: 0xC0000005: Access violation reading location 0x00000000.
Unhandled exception at 0x0115BAEA in Soduku9x9.exe: 0xC0000005: Access violation reading location 0x00000000.
Đoạn code lỗi :
//Tìm số các điểm cần điền
int **zero = new int*[2];
numAvaiableCount = new int[numNeeded];
stepMark = new int[2];
int **numAvai = new int*[numNeeded];
//Khai báo
zero[0] = new int[numNeeded];
zero[1] = new int[numNeeded];
//Gán 0 cho các phần từ của ma trận đánh dấu vị trí...
for (size_t i = 0; i < numNeeded; i++){
stepMark[i] = 0;
numAvaiableCount[i] = 0;
numAvai[i] = new int[N];
for (int j = 0; j < N; j++)
{
numAvai[i][j] = 0;
}
cout << "
";
}
for (size_t i = 0; i < numNeeded; i++){
for (size_t j = 0; j < N; j++)
{
cout << numAvai[i][j] << " ";
}
cout << "
";
}
2 biến này bạn đã khai báo phía trên chưa?
Mình có khai báo rồi bạn ạ.
Code hơi dài nên mình ko post hết
Đưa full code lên đi bạn. Không biết biến này khởi tạo giá trị chỗ nào.
Cám ơn bạn, mình sẽ edit lại post
chỗ này bạn khai báo 2 vị trí.
trong vòng lặp bạn gán
Không biết khi i >= 2 thì có bị sao không nhỉ?
Ngàn lần cám ơn bạn cái này mình đặt sai. Chính xác phải là :
Chắc do nguyên nhân là ở đây. Mình soát lại cả buổi rồi mà không ngờ lại sai lỗi này. Cám ơn bạn rất nhiều