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++
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
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.