Hiển thị kết quả từ 1 đến 3 / 3
  1. #1
    Tham gia
    14-07-2017
    Bài viết
    1
    Like
    0
    Thanked 0 Times in 0 Posts

    Cấp phát bộ nhớ động

    Anh/chị cho em hỏi sau khi cấp bộ quyền sử dụng bộ nhớ động cho con trỏ mình phải dùng hàm free để giải phóng nó, nhưng giả sử vì biến con trỏ lại được tạo từ vùng nhớ stack(cục bộ), nên khi chạy xong hàm thì biến này sẽ tự động mất đi, vậy mình sẽ không cần dùng free() để giải phóng?
    Quote Quote

  2. #2
    Tham gia
    09-08-2009
    Location
    localhost
    Bài viết
    19
    Like
    1
    Thanked 2 Times in 2 Posts
    Con trỏ trên Stack chỉ bộ nhớ bên Heap (Khôi nhớ khi bạn yêu cầu cấp phát). Khi chạy xong hàm thì đúng là con trỏ mất đi nhưng khối nhớ vẫn còn. Nếu Bạn dùng C# thì sẽ tự dọn cho Bạn

  3. #3
    Tham gia
    10-12-2004
    Location
    HCMC
    Bài viết
    2,115
    Like
    283
    Thanked 720 Times in 362 Posts
    Quote Được gửi bởi kid14061406 View Post
    Anh/chị cho em hỏi sau khi cấp bộ quyền sử dụng bộ nhớ động cho con trỏ mình phải dùng hàm free để giải phóng nó, nhưng giả sử vì biến con trỏ lại được tạo từ vùng nhớ stack(cục bộ), nên khi chạy xong hàm thì biến này sẽ tự động mất đi, vậy mình sẽ không cần dùng free() để giải phóng?
    nếu biến đó mất đi thì vùng nhớ trong heap vẫn bị cấp phát và nằm đó, không có chuyện không cần dùng hàm free nhé. Đó gọi là leak memory.

Bookmarks

Quy định

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