
Bài giảng Con trỏ và quản lý bộ nhớ động - Hoàng Thân Anh Tuấn
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
Bài giảng Con trỏ và quản lý bộ nhớ động - Hoàng Thân Anh TuấnCon trỏ và quản lý bộ nhớ động Hoàng Thân Anh Tuấn Khoa Toán – Tin học Đại học Sư phạm TPHCMNội dung Tổ chức của chương trình Địa chỉ Biến con trỏ Các thao tác trên biến con trỏ Biến tĩnh và biến động Cấp phát và hủy biến độngTổ chức của chương trình Một chương trình được chia ra thành nhiều phân đoạn (segment). Mỗi segment có thể xem như là một mảng một chiều. Mỗi segment lưu một loại dữ liệu nhất định. – Data Segment: lưu các biến toàn cục – Stack Segment: lưu các biến cục bộ của các hàm và các thông tin khác – Heap Segment: lưu các biến động – Code Segment: lưu các chỉ thị đoạn mã của chương trìnhĐịa chỉ Một ô nhớ bất kỳ (một biến bất kỳ) trong chương trình có một địa chỉ duy nhất. Mỗi địa chỉ gồm có hai thành phần: – Tên segment lưu biến – Vị trí của biến trong segment Địa chỉ thường được ký hiệu là segment:offset – Segment có thể là Data, Heap, Code, Stack – Offset là vị trí của biến trong segment tương ứngVí dụint a;int main(){ 16 16 int b; 12 12 double c; 8 c 8 … 4 4 return 0; 0 b 0 a} Stack DataBiến con trỏ Là biến dùng để lưu giá trị địa chỉ Cú pháp khai báo một biến con trỏ Kiểu* tên-biến; – Ý nghĩa: khai báo một biến con trỏ dùng để lưu địa chỉ của các biến thuộc kiểu đã chỉ ra. – Biến con trỏ có kích thước 4 bytes (hệ điều hành 32 bit) Ví dụ: – int* pint; // khai báo một biến con trỏ dùng để lưu địa chỉ của các biến thuộc kiểu int. – double* p; // khai báo một biến con trỏ dùng để lưu địa chỉ của các biến thuộc kiểu double.Các thao tác trên con trỏ Phép lấy địa chỉ: – Kí hiệu: & – Cú pháp: &tên-biến – Ý nghĩa: lấy địa chỉ của biến đi kèm. Biến được lấy địa chỉ phải thuộc kiểu mà con trỏ có thể lưu địa chỉ. – Ví dụ: int a = 5; int* pa = &a; // pa sẽ lưu địa chỉ của biến a Phép khử địa chỉ – Kí hiệu: * – Cú pháp: *tên-biến-con-trỏ – Ý nghĩa: truy xuất đến vùng nhớ có địa chỉ đang được lưu bởi biến con trỏ đi kèm – Ví dụ: int a = 5; int* pa = &a; *pa = 6; cout Biến tĩnh và biến động Biến tĩnh Biến động Có tên Không có tên Kích thước cố định Kích thước không cố định Được cấp phát tự động trong Data Được cấp phát trong Heap Segment hoặc Stack Segment Segment Phạm vi sử dụng từ lúc khai báo Phạm vi sử dụng bắt đầu từ lúc đến hết khối gần nhất chứa nó. được tạo ra và kết thúc khi bị hủy. Tự động giải phóng khi hết phạm vi Không tự động giải phóng. Lập sử dụng trình viên phải lo việc này.Cấp phát biến động Không có tên, chỉ có địa chỉ dùng biến con trỏ để lưu địa chỉ. Cú pháp: – Biến-con-trỏ = new Kiểu; – Biến-con-trỏ = new Kiểu[số phần tử]; Ví dụ: – int* p = new int; – double* pd = new double[10];Hủy biến động Thông qua biến con trỏ lưu địa chỉ của biến động. Cú pháp: – delete biến-con-trỏ; – Delete [] biến-con-trỏ; Ví dụ: – delete p; – delete [] pd;
Tìm kiếm theo từ khóa liên quan:
Bài giảng Con trỏ Quản lý bộ nhớ động Biến con trỏ Thao tác trên biến con trỏ Hủy biến động Cấp phát biến độngTài liệu có liên quan:
-
124 trang 135 3 0
-
Giáo trình Ngôn ngữ lập trình 2
50 trang 114 0 0 -
Bài giảng Lập trình cơ bản: Bài 6 - Chu Thị Hường
38 trang 39 0 0 -
Bài giảng chương 3: Danh sách liên kết
19 trang 32 0 0 -
97 trang 30 0 0
-
Ngôn ngữ lập trình C++: Phần 1
209 trang 26 0 0 -
Bài giảng Cấu trúc dữliệu và giải thuật: Ôn tập - Đậu Ngọc Hà Dương
44 trang 25 0 0 -
Bài giảng Lập trình nâng cao: Bài 7+8+9 - Trương Xuân Nam
43 trang 24 0 0 -
Bài giảng Lập trình: Chương 3 - Vũ Song Tùng
98 trang 22 0 0 -
52 trang 21 0 0
-
72 trang 21 0 0
-
96 trang 21 0 0
-
Bài giảng Lập trình C nâng cao: Chương 3 - Trần Minh Thái
22 trang 21 0 0 -
Bài giảng Phương pháp lập trình: Chương 7
16 trang 20 0 0 -
Bài giảng Kỹ thuật lập trình: Hàm nâng cao (Phần 2) - ThS. Đặng Bình Phương
30 trang 19 0 0 -
Bài giảng Phương pháp lập trình - Chương 5: Con trỏ (2016)
46 trang 19 0 0 -
Bài giảng Kỹ thuật lập trình: Chuỗi ký tự - ThS. Đặng Bình Phương
20 trang 18 0 0 -
34 trang 18 0 0
-
Bài giảng Cơ sở dữ liệu giải thuật: Bài 10 - Con trỏ và mảng động
58 trang 18 0 0 -
Bài giảng Kỹ thuật lập trình: Giới thiệu môn học - ThS. Đặng Bình Phương
7 trang 18 0 0