1. Trang chủ
  2. » Tất cả

IT001 – NHẬP MÔN LẬP TRÌNH con trỏ phần 2

64 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 64
Dung lượng 1,08 MB

Nội dung

CON TRỎ CON TRỎ VÀ CẤP PHÁT ĐỘNG CĐR buổi học • Sau học xong buổi học, sinh viên có khả năng: • Hiểu trỏ cấp phát động • Áp dụng trỏ cấp phát mảng • Áp dụng trỏ tham số hàm • Áp dụng trỏ cấu trúc Nội dung Cấp phát động Cấp phát động mảng chiều Cấp phát động mảng chiều Con trỏ hàm số Con trỏ cấu trúc Một số vấn đề mở rộng NMLT - CON TRỎ VÀ CẤP PHÁT ĐỘNG Cấp phát động • Cấp phát nhớ tĩnh (static memory allocation) • Khai báo biến, cấu trúc, mảng, … • Bắt buộc phải biết trước cần bao nhiều nhớ lưu trữ  tốn nhớ, không thay đổi kích thước, … • Cấp phát động (dynamic memory allocation) • Cần cấp phát nhiêu • Có thể giải phóng khơng cần sử dụng • Sử dụng vùng nhớ ngồi chương trình (cả nhớ ảo virtual memory) NMLT - CON TRỎ VÀ CẤP PHÁT ĐỘNG Cấu trúc CT C++ nhớ • Tồn tập tin chương trình nạp vào nhớ vùng nhớ trống, gồm phần: STACK Last-In First-Out Lưu đối tượng cục thực hàm Vùng nhớ trống HEAP Đối tượng toàn cục & tĩnh Mã chương trình NMLT - CON TRỎ VÀ CẤP PHÁT ĐỘNG Vùng cấp phát động (RAM trống nhớ ảo) Vùng cấp phát tĩnh (kích thước cố định) Gồm lệnh (kích thước cố định) Cấp phát nhớ • Cấp • phát nhớ Trong C: Hàm malloc, calloc, realloc ( ) • Trong C++: Tốn tử new • Giải phóng nhớ • Trong C: Hàm free • Trong C++: Toán tử delete NMLT - CON TRỎ VÀ CẤP PHÁT ĐỘNG Biến cấp phát động Biến tự động • Biến cục • Khai báo bên định nghĩa hàm • Sinh hàm gọi • Hủy hàm kết thúc • Thường gọi biến tự động nghĩa trình biên dịch quản lý cách tự động • Biến cấp phát động • Sinh cấp phát động • Sinh hủy chương trình chạy • Biến cấp phát động hay Biến động biến trỏ trước sử dụng cấp phát nhớ NMLT - CON TRỎ VÀ CẤP PHÁT ĐỘNG Toán tử new • Vì trỏ tham chiếu tới biến khơng thực cần phải có định danh cho biến • Có thể cấp phát động cho biến trỏ toán tử new Toán tử new tạo biến “không tên” cho trỏ trỏ tới • Cú pháp: * = new Ví dụ: int *ptr = new int; o Tạo biến “khơng tên” gán ptr trỏ tới o Có thể làm việc với biến “khơng tên” thơng qua *ptr NMLT - CON TRỎ VÀ CẤP PHÁT ĐỘNG Kiểm tra việc cấp phát có thành cơng khơng #include using namespace std; 0x34 3199 int main() { int *p = new int; if (p == NULL) { cout

Ngày đăng: 25/02/2023, 14:52

w