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

Buoi13_Contro_P2

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,23 MB

Nội dung

NHẬP MƠN LẬP TRÌNH BUỔI 14: 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 tồ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++: Tố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 Tố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 Tố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: 16/04/2021, 09:33

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN