Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: Vấn đề tràn stack, có cách nào cấp phát stack không?

  1. #1
    Ngày gia nhập
    10 2007
    Bài viết
    50

    Mặc định Vấn đề tràn stack, có cách nào cấp phát stack không?

    hôm trước mình có viết chương trình tô màu một vùng bất kì, thuật toán chủ yếu sử dụng đệ qui để tô, khi tô những vùng nhỏ thì không vấn đề, nhưng khi tô những vùng lớn thì chạy một hổi thì crash luôn, mình tìm hiểu thì do tràn stack, vậy có cách nào để tự cấp phát stack không? hay có phương án khác không?

  2. #2
    Ngày gia nhập
    09 2007
    Bài viết
    724

    Theo như cách bạn tô thì mình đoán là bạn dùng thuật toán tô loang theo kiểu đệ qui hả. Có một thuật toán khác là tô loang không đệ qui.
    À mà dùng đệ qui mà lại còn dùng cả stack nữa hay sao? theo mình biết thì thuật toán này nó dùng 1 trong 2 thôi. Bạn post code của bạn lên đây mọi người coi thử.

  3. #3
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Trích dẫn Nguyên bản được gửi bởi zkday2686 Xem bài viết
    À mà dùng đệ qui mà lại còn dùng cả stack nữa hay sao? theo mình biết thì thuật toán này nó dùng 1 trong 2 thôi. Bạn post code của bạn lên đây mọi người coi thử.
    Stack mà bạn ấy nói là stack hệ thống của máy. Nếu trong dos thì có cấp phát stack cũng bằng thừa vì cấp được có 64kb, ko hơn bao nhiêu. Còn trong win32 thì có thể cấp phát động cho stack hệ thống nhưng kỹ thuật tương đối khó và dễ làm crash chương trình. Nhìn chung mấy bài dạng này nên dùng thuật toán ko đệ quy giải quyết.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  4. #4
    Ngày gia nhập
    10 2007
    Bài viết
    50

    đúng là mình dùng thuật toán tô loan, thuật toán tô màu theo kiểu scan line thì không bàn làm gì, mình viết trên MFC , ý mình là các có thể cho mình biết ý tưởng hay một số hàm đặt trưng cho việc cấp phát stack, mình không bàn di sâu vào lập trình chi tiết, chi muốn biết ý tưởng!!!!!!!!!!!!!

  5. #5
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Bạn có thể xây dựng lớp Stack và dùng cách khử đệ quy. Còn nếu dùng đệ quy thì bạn phải cấp phát động cho stack hệ thống bằng cách thay đổi thanh ghi esp. Nhưng sau khi thực hiện xong bạn phải trả esp về giá trị cũ thì chương trình mới ko bị crash.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

Các đề tài tương tự

  1. Bài tập C++ copy noi dung tu stack S sang stack D
    Gửi bởi thaodn_chuprong trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 12
    Bài viết cuối: 18-10-2012, 11:45 PM
  2. Cấu trúc dữ liệu Chuyển các phần tử từ stack này sang stack kia như thế nào?
    Gửi bởi rukawa1184 trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 9
    Bài viết cuối: 06-12-2011, 06:52 PM
  3. Stack, ngăn xếp - Thiết lập và ứng dụng stack trong C
    Gửi bởi PoPoPoPo trong diễn đàn Thủ thuật, Tutorials CTDL & Giải thuật
    Trả lời: 8
    Bài viết cuối: 15-11-2010, 11:24 PM
  4. Stack trên C | Lỗi khó hiểu trong Stack
    Gửi bởi tom3cang trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 22-05-2009, 11:09 PM
  5. Code về stack | Chuyển hệ số 10 sang 2 dùng stack
    Gửi bởi ahappyboy89 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 13
    Bài viết cuối: 17-04-2009, 09:48 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn