Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

Vấn đề rò rỉ bộ nhớ trong C++ - Memory leak C++

8 năm trước 1.477 lượt xem 3 bình luận 8 năm trước

Mình có 1 vấn đề không hiểu rõ . mn giúp mình với ạ . 
mình có 2 class như sau : 

class CB

class CA 

và hàm main như sau 

- Với chương trình như trên thì có xảy ra vấn đề rò rỉ bộ nhớ hay vi phạm quyền truy xuất không mn nhỹ ? 

- Vấn đề tiếp theo là mình dùng con trỏ ở Object A trỏ đến B . và nó có thể thực hiện mọi thay đỗi trên B . nhưng sao khi mình delete(A) đi thì giá trị bên B không giữ được vậy ạ . nhưng nếu delete(A) ở cuối thì mọi chuyện vẫn diễn ra bình thường 

- Vấn đề thứ 3 là ở class CA mình bỏ delete m_pB  thì có phải xảy ra memory leak không ạ ? 

 Mọi người giúp mình với nhé . tks all 

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
K9 SuperAdmin, KquizAdmin, KquizAuthor đã bình luận 8 năm trước

1. Sau khi delete(A) thì B cũng bị giải phóng nên các truy cập sau đó trên B là không an toàn.
2. Trong hàm hủy A bạn có giải phóng bộ nhớ của B nên tất nhiên là B bị giải phóng rồi.
3. Cái này không liên quan đến nhau, Có chăng vấn đề là bạn dùng một con trỏ chưa được cấp phát thì lỗi thôi.