Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 17 kết quả

Đề tài: [ Solved ]Cấp phát động

  1. #1
    Ngày gia nhập
    03 2008
    Bài viết
    13

    Wink [ Solved ]Cấp phát động

    Mình mới học lập trình hướng đối tượng và có thắc mắc này mong các bạn giúp đỡ:mình không hiểu cho lắm về cấp phát động "new",nó khác thế nào so với cấp phát bình thường...theo mình được biết thì cấp phát động new cấp đối tượng trong vùng heap(hay vùng free store) mình không hiều lắm về mấy cái vùng này???

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

    Mình chỉ biết trong VC++, khi dùng new, nếu còn đủ memory thì nó sẻ gọi "HeapAlloc()" , còn nếu không đủ thì nó gọi "VirtualAlloc()"!

    Nếu bạn dùng TC hay một compiler nào khác thì dùng debug lần đến chổ dùng new xem sao!

  3. #3
    Ngày gia nhập
    03 2008
    Bài viết
    13

    Mình đã dubug nhưng mình thấy nó cũng như cấp phát thường mà,chỉ có điều nếu cấp phát động thì ta có thể "delete" nó bằng hàm delete.

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

    Bạn có mở disassembler lên xem thử không! Mình thấy nó dùng HeapAlloc() mà (trong windows đó)!

  5. #5
    Ngày gia nhập
    03 2008
    Bài viết
    13

    Mình chưa từng nghe qua ham HeapAloc().Mình cũng kko rành Disassembler

  6. #6
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Mặc định [ Solved ]Cấp phát động

    Hi. Nếu mà nói new và malloc ( alloc ) khác nhau thì ko đúng. Bản chất chúng giống nhau, và nếu mình nhớ ko lầm thì new trong C++ sẽ gọi đến malloc trong C

  7. #7
    Ngày gia nhập
    03 2008
    Bài viết
    13

    có ai có thể giải thích cho mình về mấy vùng nhớ dc ko?

  8. #8
    Ngày gia nhập
    12 2007
    Bài viết
    224

    Có nhiều vùng nhớ lắm . Nói chung là mỗi vùng nhớ có một tác dụng riêng . Vì thế người ta mới phải phân chia ra . Ví dụ như biến toàn cục nằm trong vùng nhớ tĩnh . Biến cục bộ nằm trong vùg nhớ stack . Vùg nhớ được cấp phát động nằm trong vùng heap .

    Do phạm vi tồn tại của các biến khác nhau nên người ta mới phân chia như thế . Để bộ nhớ luôn được giải phóng tốt nhất có thể . VÍ dụ như biến cục bộ chỉ cần tồn tại trong hàm con thôi . Ra khỏi hàm con sẽ bị tự giải phóng để đỡ tốn bộ nhớ . Còn biến toàn cục thì được toàn chương trình sử dụng nên nó sẽ tồn tại trong suốt chương trình .

  9. #9
    Ngày gia nhập
    03 2008
    Bài viết
    13

    Nhưng mà mình thấy thưong dùng cấp phát động?tại sao?cấp phát động có uu và nhưoc điểm như thế nào?nó khác thế nào so với cấp phát thưong

  10. #10
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Nhưng mà mình thấy thưong dùng cấp phát động?tại sao?cấp phát động có uu và nhưoc điểm như thế nào?nó khác thế nào so với cấp phát thưong
    Khó xài hơn, debug cũng oải hơn -> power hơn, run-time (cần bao nhiêu xài bấy nhiêu ) !

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

  1. [Solved]xem hộ mình với ( sao không lặp lại nhỉ)
    Gửi bởi minhphuong90 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 8
    Bài viết cuối: 09-11-2008, 06:05 PM
  2. [ Solved ]Xây dựng lớp ĐỒTHI
    Gửi bởi bluesky_123078 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 09-11-2008, 09:34 AM
  3. [Solved] Hỏi về con trỏ
    Gửi bởi RedHatLinux9 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 17-09-2008, 08:01 AM
  4. [ Solved ]Cần hướng dẫn về bài tập màng!!
    Gửi bởi itthuyloi trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 03-06-2008, 03:00 PM
  5. [ Solved ]Sắp xếp hai dãy số
    Gửi bởi thuchanh trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 10
    Bài viết cuối: 20-04-2008, 11:47 PM

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