Tôi đang sử dụng VS 2010.
Khi tôi chạy chương trình này trong chế độ Debug nó ném stack overflow ngoại lệ và cho thấy một breakline trong file chkstk.asm tại dòng 99.
Nhưng khi tôi chạy nó trong chế độ Release thì OK.
Ngoài ra nếu tôi giảm kích thước của một trong các mảng thành 10000 thì nó hoạt động tốt trong Gỡ lỗi. Lý do là gì?stack overflow ngoại lệ trong chương trình ngớ ngẩn
#include <iostream>
using namespace std;
int main()
{
char w[1000001], temp[1000001];
cout<<"Why?"<<endl;
return 0;
}
Bạn đã bật tối ưu hóa nào trong chế độ phát hành? Có một cơ hội tốt mà trình biên dịch chỉ là loại bỏ các mảng. –
có thể trùng lặp của [Ngăn xếp ngăn xếp khi gỡ lỗi nhưng không được phát hành] (http://stackoverflow.com/questions/5670904/stack-overflow-when-debugging-but-not-in-release) –
Bạn có hỏi "Cái gì là lý do tràn? " Hoặc "Lý do hành vi thay đổi trong các chế độ xây dựng khác nhau là gì?" Hay cái gì khác? –