30/09/2018, 17:04

Thắc mắc về giải phóng bộ nhớ động trong danh sách liên kết ạ!

Mọi người cho em hỏi: khi cấp phát bộ nhớ động cho các bài toán về danh sách liên kết trong C thì khi kết thúc trương trình không phải giải phóng bộ nhớ động đã cấp phát ra ạ? Em mới học về danh sách liên kết đơn, tìm tài liệu trên mạng cũng chỉ thấy cấp phát động ra nhưng cuối cùng thì không có giải phóng bộ nhớ động đã cấp phát ạ. Nếu phải giải phóng bộ nhớ động thì cho em xin ví dụ đơn giản về phần này được không ạ?

Minh Hoàng viết 19:07 ngày 30/09/2018

Nếu đã cấp phát động thì phải giải phóng chứ còn giải phóng DSLK thì chỉ cần cho duyệt và hủy từng node thôi.

Van Cuong viết 19:18 ngày 30/09/2018

cảm ơn anh nhá

Interns viết 19:14 ngày 30/09/2018

@Rok_Hoang nếu như mình không tự giải phóng thì máy nó có tự huỷ vùng nhớ đó khi thoát khỏi chương trình không nhỉ.

Minh Hoàng viết 19:17 ngày 30/09/2018

Bạn hỏi về “máy” thì mình cũng không rõ là hệ điều hành có cơ chế hủy vùng nhớ không, mình nghĩ là không.
Đối với ngôn ngữ thì C/C++ thì không tự hủy vùng nhớ cấp phát động được, ngoài ra thì C++ có smart pointer cũng hỗ trợ một phần việc giải phóng nhưng sử dụng không tốt thì phiền phức.
Java thì có Garbage Collect để hủy vùng nhớ giùm mình.

Pham Van Hai viết 19:13 ngày 30/09/2018

sau khi chương trình kết thúc, hệ điều hành (hiện đại) sẽ giải phóng tài nguyên mà chương trình đã dùng.
Bạn có thể tham khảo thêm ở đây:

stackoverflow.com
Andreas Grech

When you exit a C application, is the malloc-ed memory automatically freed?

c, memory-management
asked by Andreas Grech on 03:37PM - 06 Feb 10
Interns viết 19:14 ngày 30/09/2018

Mình đọc nhưng vẫn chưa hiểu do tiếng anh kém .Thầy mình bảo rằng một số hệ điều hành hoặc một số ngôn ngữ có cơ chế tự giải phóng nhưng chỉ giải phóng tầm 60-70% vùng nhớ chắc chắn không sử dụng đến nữa,vì khi kết thúc chương trình có một số vùng nhớ hệ điều hành sẽ không biết ta có sử dụng chúng nữa không. Nếu đúng như thế thì khi kết thúc chương trình thì chứng tỏ ta đâu còn sử dụng đến vùng nhớ đó nữa đâu sao thầy nói là hệ điều hành sẽ không biết ta có sử dụng chúng nữa không

Bài liên quan
0