Ngôn ngữ lập trình Pascal cung cấp nhiều hàm phân bổ và quản lý bộ nhớ. Hãy tham khảo bài viết dưới đây của Mytour để hiểu thêm về bộ nhớ trong Pascal.
Phân bổ Bộ Nhớ Động trong Pascal
Trong quá trình làm việc với chương trình, khi bạn biết kích thước của mảng, bạn có thể dễ dàng định nghĩa nó như một mảng. Ví dụ, để lưu trữ tên của một người nào đó, bạn có thể tăng tối đa 100 ký tự như sau:
Biến
TenNguoi: mảng[1..100] ký tự;
Hãy xem ví dụ dưới đây, giả sử bạn chưa có ý tưởng về độ dài của một đoạn văn mà bạn cần lưu trữ, chẳng hạn như đoạn văn mô tả chi tiết về một chủ đề. Trong ví dụ này, bạn cần định nghĩa một con trỏ trỏ đến một chuỗi không xác định cần bao nhiêu bộ nhớ.
Pascal cung cấp thủ tục tạo mới để khởi tạo biến con trỏ.
Khi đoạn mã này được biên dịch và thực thi, nó sẽ trả về kết quả như sau:
Tên = Zara Ali
Mô tả: Zara Ali, học sinh DPS lớp 10
Nếu bạn muốn đặc định con trỏ với một số lượng byte cụ thể, bạn có thể sử dụng hàm getmem hoặc quy trình getmem, cú pháp như sau:
Trong ví dụ này, chúng ta khai báo một con trỏ đến một chuỗi. Giá trị lớn nhất của chuỗi là 255 byte. Nếu không cần nhiều bộ nhớ hoặc muốn sử dụng bộ nhớ lớn hơn, chương trình con getmem sẽ giúp bạn thực hiện điều này. Tiếp tục với ví dụ trên, nếu sử dụng getmem:
Khi đoạn mã này được biên dịch và chạy, nó sẽ trả về kết quả như sau:
Tên = Zara Ali
Mô tả: Zara Ali, một học sinh của trường DPS học lớp 10
Do đó, bạn có hoàn toàn quyền kiểm soát và có thể điều chỉnh phân bổ bộ nhớ. Khác biệt với các mảng, sau khi định nghĩa, bạn không thể thay đổi kích thước bộ nhớ nữa.
Thay Đổi Kích Thước và Giải Phóng Bộ Nhớ
Khi chương trình kết thúc, hệ điều hành sẽ tự động giải phóng bộ nhớ mà chương trình đã phân bổ. Tuy nhiên, nếu không cần sử dụng, bạn cũng có thể tự giải phóng bộ nhớ đó.
Pascal cung cấp chức năng dispose để giải phóng bộ nhớ động bằng cách tạo biến mới thông qua chức năng new. Trong trường hợp bạn sử dụng chương trình con getmem để phân bổ bộ nhớ, bạn sẽ cần sử dụng chương trình con freemem để giải phóng bộ nhớ.
Cú pháp cho các chương trình con freemem có dạng như sau:
Bên cạnh đó, bạn có thể điều chỉnh kích thước của khối bộ nhớ được phân bổ bằng cách sử dụng hàm ReAllocMem. Cú pháp cho đoạn mã trên, sử dụng các chương trình con ReAllocMem và freemem, sẽ có dạng như sau:
Ví dụ dưới đây minh họa cách sử dụng các chương trình con ReAllocMem và freemem:
Khi chương trình trên được biên dịch và chạy, nó sẽ hiển thị kết quả sau đây:
Tên = Zara Ali
Mô tả: Zara Ali, học sinh trường DPS. Cô ấy đang học lớp 10
Các chức năng quản lý bộ nhớ trong Pascal
Mytour chia sẻ thông tin độc đáo về bộ nhớ trong Pascal cùng các hàm quản lý liên quan. Để khám phá toán tử trong Pascal, lệnh lặp trong Pascal, và nhiều điều khác, bạn đọc có thể tham khảo các bài viết khác trên Mytour nhé.
