Các mã sau đây được tạo ra một lỗi tràn stack cho tôiBắt một tràn ngoại lệ stack khi khai báo một mảng lớn
int main(int argc, char* argv[])
{
int sieve[2000000];
return 0;
}
Làm thế nào để làm được việc này? Tôi đang sử dụng Turbo C++ nhưng muốn giữ mã của tôi ở C
EDIT:
Cảm ơn lời khuyên. Đoạn mã trên chỉ là ví dụ, tôi thực sự khai báo mảng trong một hàm và không phải trong phần chính. Ngoài ra, tôi cần các mảng được khởi tạo để số không, vì vậy khi tôi googled malloc, tôi phát hiện ra rằng calloc là hoàn hảo cho mục đích của tôi.
Malloc/calloc cũng có lợi thế hơn phân bổ trên ngăn xếp cho phép tôi khai báo kích thước bằng biến.
vẫn cười khúc khích @ "sàng" – el2iot2
Tôi đọc "ngoại lệ tràn ngăn xếp" và tự nghĩ "...? Có vấn đề gì với trang web?" Rõ ràng tôi dành quá nhiều thời gian ở đây: -/ –
Tôi khá chắc rằng kiểu câu hỏi này phải xuất hiện trước đây trên trang này, nhưng tìm kiếm "tràn ngăn xếp" không sử dụng bất cứ thứ gì –