Gỡ lỗi Unhandled exception: 0xC00000FD: Stack overflow

Hi mọi người!
Chuyện là em code trên Visual Studio 2021 khi chạy nó không hiện kết quả mà thông báo lỗi như sau:

Unhandled exception at 0x00007FF7A2612E47 in TestCode.exe: 0xC00000FD: Stack overflow (parameters: 0x0000000000000001, 0x000000B447603000).
mọi người hỗ trợ em với ạ

#include <iostream>
using namespace std;
int ax[8] = { -1,-1,-1,0,0,1,1,1 };
int by[8] = { -1,0,1,-1,1,-1,0,1 };
void Bai3() {
	int n, m; cin >> n >> m;
	int a[100][100];
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			cin >> a[i][j];
		}
	}
	int res[500][500];
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			int sum = a[i][j];
			for (int k = 0; k < 8; k++) {
				int imoi = i + ax[k];
				int jmoi = j + by[k];
				if (imoi >= 0 && imoi < n && jmoi >= 0 && jmoi < n) {
					sum += a[imoi][jmoi];
				}
			}
			res[i][j] = sum;
		}
	}
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			cout << res[i][j] << " ";
		}
		cout << endl;
	}
}
int main() {
	Bai3();
	return 0;
}

Mảng res tốn 4*500*500/1024 = 976.5625 KB. Lỗi báo khá rõ, bộ nhớ stack của bạn bị tràn rồi nhé.

Giải pháp là bạn cấp phát động mảng res, hoặc quăng mảng res làm biến global.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?