Bài giảng Kỹ thuật lập trình: Con trỏ nâng cao - Nguyễn Minh Huy
Số trang: 27
Loại file: pdf
Dung lượng: 579.93 KB
Lượt xem: 15
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Kỹ thuật lập trình: Con trỏ nâng cao, được biên soạn gồm các nội dung chính sau Quản lý bộ nhớ; Con trỏ nhiều cấp; Các loại con trỏ khác. Mời các bạn cùng tham khảo!
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật lập trình: Con trỏ nâng cao - Nguyễn Minh HuyCon trỏ nâng cao GV. Nguyễn Minh HuyKỹ thuật lập trình - Nguyễn Minh Huy 1Nội dung Quản lý bộ nhớ. nhớ. Con trỏ nhiều cấp. cấp. Các loại con trỏ khác. khác.Kỹ thuật lập trình - Nguyễn Minh Huy 2Nội dung Quản lý bộ nhớ. nhớ. Con trỏ nhiều cấp. cấp. Các loại con trỏ khác. khác.Kỹ thuật lập trình - Nguyễn Minh Huy 3Quản lý bộ nhớ Cấp phát bộ nhớ trong C: Xin một vùng nhớ trong RAM để sử dụng. dụng. Lệnh malloc: thư viện malloc: malloc.h> Cú pháp: malloc(); pháp: malloc( phát> Trả về: địa chỉ vùng nhớ được cấp. về: cấp. int *p = (int *) malloc( 2 * sizeof(int) ); (int malloc( sizeof(int) PhanSo *q = (PhanSo *) malloc( 2 * sizeof(PhanSo) ); (PhanSo malloc( sizeof(PhanSo) 44 45 46 47 72 73 74 75 76 77 78 79p 72 0 0 0 ? ? ? ? ? ? ? ? p+1 tu mau tu mau 33 34 35 36 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70q 55 0 0 0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? q+1Kỹ thuật lập trình - Nguyễn Minh Huy 4Quản lý bộ nhớ Thu hồi bộ nhớ trong C: Trả lại vùng nhớ đã xin của RAM. Quy tắc quản lý bộ nhớ của C: Tự thu hồi vùng nhớ khai báo biến. biến. Không thu hồi vùng nhớ tự cấp phát. phát. Lập trình viên phải tự thu hồi vùng nhớ cấp phát. phát. Quên thu hồi “Rò rỉ” bộ nhớ (memory leak). rỉ” Lệnh free: thư viện malloc.h> Cú pháp: free(); pháp: free( float *r = (float *) malloc( 20 * sizeof(float) ); malloc( sizeof(float) free(r free(r);Kỹ thuật lập trình - Nguyễn Minh Huy 5Quản lý bộ nhớ Cấp phát và thu hồi trong C++: C++ tương thích với C (hỗ trợ malloc). (hỗ malloc). C++ có lệnh cấp phát và thu hồi mới. mới. Toán tử new: cấp phát bộ nhớ. new: nhớ. Cú pháp: new []; pháp: liệu> tử> Trả về: địa chỉ vùng nhớ được cấp. về: cấp. Toán tử delete: thu hồi bộ nhớ. delete: nhớ. Cú pháp: delete ; pháp: nhớ>; int *p = new int [ 10 ]; PhanSo *q = new PhanSo [ 30 ]; delete [ ]p; delete [ ]q;Kỹ thuật lập trình - Nguyễn Minh Huy 6Quản lý bộ nhớ Mảng động một chiều: chiều: Không cần biết số phần tử khi khai báo. báo. Cấp phát vùng nhớ khi cần. cần. Thu hồi vùng nhớ khi sử dụng xong. xong. Sử dụng bộ nhớ hiệu quả hơn. hơn. void nhapMang(int *&a, int &n) { nhapMang( *&a, &n) void main() main() printf(“Nhap printf(“Nhap so phan tu: “); tu: { scanf(“%d”, &n); scanf(“%d”, &n); int *a; *a; a = new int [ n ]; int n; for (int i = 0; i < n; i++) { (int nhapMang(a, nhapMang(a, n); printf(“Nhap printf(“Nhap phan tu %d:”, i); delete [ ]a; scanf(“%d”, scanf(“%d”, &a[ i ]); } } }Kỹ thuật lập trình - Nguyễn Minh Huy 7Nội dung Quản lý bộ nhớ. nhớ. Con trỏ nhiều cấp. cấp. Các loại con trỏ khác. khác.Kỹ thuật lập trình - Nguyễn Minh Huy 8Con trỏ nhiều cấp Địa chỉ của con trỏ: trỏ: Mỗi biến có một địa chỉ. chỉ. Biến int có kiểu địa chỉ int *. Biến con trỏ cũng có địa chỉ. chỉ. Biến int * có kiểu địa chỉ là gì? ...
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật lập trình: Con trỏ nâng cao - Nguyễn Minh HuyCon trỏ nâng cao GV. Nguyễn Minh HuyKỹ thuật lập trình - Nguyễn Minh Huy 1Nội dung Quản lý bộ nhớ. nhớ. Con trỏ nhiều cấp. cấp. Các loại con trỏ khác. khác.Kỹ thuật lập trình - Nguyễn Minh Huy 2Nội dung Quản lý bộ nhớ. nhớ. Con trỏ nhiều cấp. cấp. Các loại con trỏ khác. khác.Kỹ thuật lập trình - Nguyễn Minh Huy 3Quản lý bộ nhớ Cấp phát bộ nhớ trong C: Xin một vùng nhớ trong RAM để sử dụng. dụng. Lệnh malloc: thư viện malloc: malloc.h> Cú pháp: malloc(); pháp: malloc( phát> Trả về: địa chỉ vùng nhớ được cấp. về: cấp. int *p = (int *) malloc( 2 * sizeof(int) ); (int malloc( sizeof(int) PhanSo *q = (PhanSo *) malloc( 2 * sizeof(PhanSo) ); (PhanSo malloc( sizeof(PhanSo) 44 45 46 47 72 73 74 75 76 77 78 79p 72 0 0 0 ? ? ? ? ? ? ? ? p+1 tu mau tu mau 33 34 35 36 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70q 55 0 0 0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? q+1Kỹ thuật lập trình - Nguyễn Minh Huy 4Quản lý bộ nhớ Thu hồi bộ nhớ trong C: Trả lại vùng nhớ đã xin của RAM. Quy tắc quản lý bộ nhớ của C: Tự thu hồi vùng nhớ khai báo biến. biến. Không thu hồi vùng nhớ tự cấp phát. phát. Lập trình viên phải tự thu hồi vùng nhớ cấp phát. phát. Quên thu hồi “Rò rỉ” bộ nhớ (memory leak). rỉ” Lệnh free: thư viện malloc.h> Cú pháp: free(); pháp: free( float *r = (float *) malloc( 20 * sizeof(float) ); malloc( sizeof(float) free(r free(r);Kỹ thuật lập trình - Nguyễn Minh Huy 5Quản lý bộ nhớ Cấp phát và thu hồi trong C++: C++ tương thích với C (hỗ trợ malloc). (hỗ malloc). C++ có lệnh cấp phát và thu hồi mới. mới. Toán tử new: cấp phát bộ nhớ. new: nhớ. Cú pháp: new []; pháp: liệu> tử> Trả về: địa chỉ vùng nhớ được cấp. về: cấp. Toán tử delete: thu hồi bộ nhớ. delete: nhớ. Cú pháp: delete ; pháp: nhớ>; int *p = new int [ 10 ]; PhanSo *q = new PhanSo [ 30 ]; delete [ ]p; delete [ ]q;Kỹ thuật lập trình - Nguyễn Minh Huy 6Quản lý bộ nhớ Mảng động một chiều: chiều: Không cần biết số phần tử khi khai báo. báo. Cấp phát vùng nhớ khi cần. cần. Thu hồi vùng nhớ khi sử dụng xong. xong. Sử dụng bộ nhớ hiệu quả hơn. hơn. void nhapMang(int *&a, int &n) { nhapMang( *&a, &n) void main() main() printf(“Nhap printf(“Nhap so phan tu: “); tu: { scanf(“%d”, &n); scanf(“%d”, &n); int *a; *a; a = new int [ n ]; int n; for (int i = 0; i < n; i++) { (int nhapMang(a, nhapMang(a, n); printf(“Nhap printf(“Nhap phan tu %d:”, i); delete [ ]a; scanf(“%d”, scanf(“%d”, &a[ i ]); } } }Kỹ thuật lập trình - Nguyễn Minh Huy 7Nội dung Quản lý bộ nhớ. nhớ. Con trỏ nhiều cấp. cấp. Các loại con trỏ khác. khác.Kỹ thuật lập trình - Nguyễn Minh Huy 8Con trỏ nhiều cấp Địa chỉ của con trỏ: trỏ: Mỗi biến có một địa chỉ. chỉ. Biến int có kiểu địa chỉ int *. Biến con trỏ cũng có địa chỉ. chỉ. Biến int * có kiểu địa chỉ là gì? ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Kỹ thuật lập trình Kỹ thuật lập trình Con trỏ nâng cao Quản lý bộ nhớ Con trỏ nhiều cấpTài liệu có liên quan:
-
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 310 0 0 -
Đề tài nguyên lý hệ điều hành: Nghiên cứu tìm hiểu về bộ nhớ ngoài trong hệ điều hành Linux
19 trang 271 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 248 0 0 -
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 222 0 0 -
Bài giảng Nguyên lý hệ điều hành (Bài giảng tuần 6) - Nguyễn Hải Châu
10 trang 208 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 189 0 0 -
Mẹo hay trong sử dụng máy tính: Phần 2
181 trang 182 0 0 -
Luận văn: Nghiên cứu kỹ thuật giấu tin trong ảnh Gif
33 trang 160 0 0 -
Tiểu luận: Quản lý bộ nhớ trong hệ điều hành windows
21 trang 135 0 0 -
Giáo trình Lý thuyết hệ điều hành: Phần 2 - Nguyễn Kim Tuấn
139 trang 130 0 0