tailieunhanh - BỘ NHỚ ĐỘNG TRONG C++

Trong bài viết này, tôi sẽ giới thiệu với các bạn về cách lập trình với con trỏ (pointer) trong việc cấp phát bộ nhớ động (dynamic memory alocation) bằng ngôn ngữ C++. Đối với các bạn đã có kinh nghiệm lập trình với C++ thì bài này đối với các bạn chỉ là "a-bờ-cờ" mà thôi. Nhưng với các bạn mới học C++ thì có lẽ là bổ ích. Nếu bạn mới học lập trình và làm quen với cấu trúc dữ liệu thì một trong số những cấu trúc dữ liệu đầu tiên mà bạn "rớ" tới. | BỘ NHỚ ĐỘNG TRONG C Trong bài viết này tôi sẽ giới thiệu với các bạn về cách lập trình với con trỏ pointer trong việc cấp phát bộ nhớ động dynamic memory alocation bằng ngôn ngữ C . Đối với các bạn đã có kinh nghiệm lập trình với C thì bài này đối với các bạn chỉ là a-bờ-cờ mà thôi. Nhưng với các bạn mới học C thì có lẽ là bổ ích. Nếu bạn mới học lập trình và làm quen với cấu trúc dữ liệu thì một trong số những cấu trúc dữ liệu đầu tiên mà bạn rớ tới là Stack ngăn xếp và Queue hàng đợi . Bạn có thể dùng 1 mảng array để thiết kế Stack và Queue. Dùng mảng thì đơn giản nhưng bạn sẽ gặp một số bất lợi như sau Lãng phí bộ nhớ giả sử bạn khai báo int array_entry 100 thì bạn sẽ có 1 vùng nhớ cho 100 phần tử nhưng nếu chương trình của bạn chỉ thường xuyên dùng có 10 phần tử và 1 vài lần là dùng đến 100 phần tử thì tức là bạn đã phí phạm 90 phần tử. Thiếu bộ nhớ vì tiết kiệm bạn chỉ khai báo int array_entry 10 nhưng nếu bạn cần dùng đến 15 phần tử ngay. Chưa hết array cần một vùng nhớ liên tục giả sử máy bạn vẫn còn nhiều bộ nhớ trống nhưng không có vùng nhớ trống liên tục nào đủ lớn cho mảng của bạn. Thế là vẫn. .thiếu bộ nhớ. Và cuối cùng người ta khi thấy bạn viết như vậy thì coi bạn là dân amateur buồn nhỉ L Nhưng không sao bài viết này sẽ giúp bạn vượt qua các trở ngại đó. Bạn sẽ biết cách ứng dụng con trỏ để tạo thành các cấu trúc dữ liệu kiên kết linked structure để tạo thành các linked stack hoặc linked queue. Bạn sẽ biết được cách toàn quyền cấp phát bộ nhớ khi có nhu cầu sử dụng và khi không dùng nữa thì ta xoá nó đi nhường memory cho các chương trình khác. Ghi chú xem như là bạn đã có học và biết qua sơ sơ về C rồi nhứng đoạn code trong bài viết này là C chứ không phải là C. Ứng dụng con trỏ ta có thể tạo ra một danh sách liên kết mảng liên kết - linked list như sau Phần đánh dấu màu hồng và nút tròn đầu tiên là các con trỏ có nhiệm vụ link đến phần tử tiếp theo trong danh sách. Nhờ có các link này mà khi đang ở phần tử thứ nhất bạn sẽ có manh mối để