Trên Linux, sử dụng C, giả sử tôi đã xác định động n
đặt tên số phần tử tôi phải lưu trữ trong một mảng (int my_array[n]
) chỉ trong một khoảng thời gian ngắn, một hàm gọi, theo đó hàm được gọi chỉ sử dụng ít bộ nhớ (vài trăm byte).Kích thước ngăn xếp còn lại cho đến khi tràn ngăn xếp xảy ra
Chủ yếu là n
là ít, một phần mười. Nhưng đôi khi n
có thể lớn, nhiều như 1000 hoặc 1'000'000.
Làm cách nào để tính toán, liệu ngăn xếp của tôi có thể giữ n*o + p
byte mà không bị tràn không?
Về cơ bản: Còn bao nhiêu byte trên ngăn xếp của tôi?
có thể trùng lặp với [Kiểm tra kích thước ngăn xếp có sẵn trong C] (http://stackoverflow.com/questions/53827/checking-available-stack-size-in -c) –
@BrendanLong, tôi thấy câu hỏi đó, nhưng khi nó nói "Tôi đang sử dụng MinGW với GCC 3.4.5 (mingw-đặc biệt vista r3)", câu trả lời có phần Windows tập trung. Câu hỏi của tôi là Linux/* nix tập trung. ;-) – kay
tại sao bạn không thể sử dụng 'getrusage()' và 'getrlimit()'? – sverre