Là người mới bắt đầu với lập trình C++ và kiến trúc hệ thống máy tính, tôi vẫn đang học những điều cơ bản về C++. Hôm qua tôi đọc về hàm đệ quy, vì vậy tôi quyết định viết của riêng tôi, đây là những gì tôi đã viết: (rất cơ bản)Stack overflow do chức năng đệ quy
int returnZero(int anyNumber) {
if(anyNumber == 0)
return 0;
else {
anyNumber--;
return returnZero(anyNumber);
}
}
Và khi tôi làm điều này: int zero1 = returnZero (4793); nó gây ra một tràn ngăn xếp, tuy nhiên, nếu tôi vượt qua giá trị 4792 như tham số, không có tràn xảy ra.
Bất kỳ ý tưởng nào về lý do tại sao?
Có lẽ giá trị lớn hơn là chính xác whats cần thiết để tràn stack? – Listing
Hãy thử 5000 - rất có khả năng nó cũng sẽ tràn ngăn xếp. Hệ thống của bạn có bao nhiêu bộ nhớ? – Silas
Bạn có hỏi lý do tại sao ngăn xếp của bạn có kích thước cụ thể không? –