Tăng kích thước stack?

Mình dùng VS Community 2017.
Hiện đang có một code mình dùng đệ quy. Input nhỏ thì chạy ngon lành, input lớn thì stack overflow. Tất nhiên là mình có thể nghĩ thuật toán khác, nhưng nhanh gọn thì có cách nào tăng kích thước stack không các bạn?

Thế thử tail call recursion xem sao bạn.

À, nếu mà thay đổi thuật toán thì mình làm xong rồi.
Lập trình dễ mà, chỉnh sửa IDE mới là cái khó chứ :joy: Mình chỉ cần biết cách tăng kích thước stack thôi.

1 Like

Nếu sử dụng C (C++), bạn có thể pass /F vào linker để điều chỉnh stack size (trên Windows), hoặc sử dụng setrlimit() (trên *nix).

Nếu C/C++ không phải lựa chọn, hoặc muốn thay đổi stack size sau biên dịch, bạn có thể sử dụng tool nhỏ mình viết sẵn. Ví dụ:

C:\>StackAlterer.exe recursion.exe 32
Current stack size: 2 MiB
New stack size: 32 MiB

Source code nếu muốn tự compile

7 Likes

Hôm qua search mãi không ra, hôm nay search lại tìm ra :joy:

Mình code C# .NET, tưởng là stack-size do IDE quản lý nên mới hỏi không kèm theo ngôn ngữ

using System.Threading;

var bigStackThread = new Thread(threadDelegate, stackSizeInBytes);
bigStackThread.Start();
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?