![Phân tích tư tưởng của nhân dân qua đoạn thơ: Những người vợ nhớ chồng… Những cuộc đời đã hóa sông núi ta trong Đất nước của Nguyễn Khoa Điềm](https://timtailieu.net/upload/document/136415/phan-tich-tu-tuong-cua-nhan-dan-qua-doan-tho-039-039-nhung-nguoi-vo-nho-chong-nhung-cuoc-doi-da-hoa-song-nui-ta-039-039-trong-dat-nuoc-cua-nguyen-khoa-136415.jpg)
Bài giảng Kỹ thuật lập trình: Chương 3 (phần 2) - Võ Quang Hoàng Khang
Số trang: 25
Loại file: pdf
Dung lượng: 1.08 MB
Lượt xem: 13
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 - Chương 3 (phần 2): Kiểu con trỏ. Chương này tập trung vào những nội dung chính sau: Cấp phát bộ nhớ động, con trỏ và mảng một chiều, con trỏ và cấu trú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: Chương 3 (phần 2) - Võ Quang Hoàng KhangTrường Đại Học Công Nghiệp TP. HCM Khoa Công Nghệ Thông Tin CHƯƠNG 3: KIỂU CON TRỎ(p2) Võ Quang Hoàng Khang Email: vqhkhang@gmail.com 1 &VC BB Nội dung 1 Cấp phát bộ nhớ động 2 Con trỏ và mảng một chiều 3 Con trỏ và cấu trúc 4 Bài tập – Kiểm tra 2 &VC BB Cấp phát bộ nhớ tĩnh và động Cấp phát 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 bộ nhớ lưu trữ tốn bộ nhớ, không thay đổi được kích thước, … Cấp phát động (dynamic memory allocation) Cần bao nhiêu cấp phát bấy nhiêu. Có thể giải phóng nếu không cần sử dụng. 3 &VC BB Cấp phát bộ nhớ động Thuộc thư viện hoặc malloc calloc free Trong C++ new delete 4 &VC BB Cấp phát bộ nhớ động void *malloc(size_t size) Cấp phát một vùng nhớ size (bytes) Con trỏ đến vùng nhớ được cấp phát NULL nếu không đủ bộ nhớ int *p = (int *)malloc(10*sizeof(int)); if (p == NULL) printf(“Không đủ bộ nhớ! ”); 5 &VC BB Cấp phát bộ nhớ động void *calloc(size_t num, size_t size) Cấp phát vùng nhớ gồm num phần tử, mỗi phần tử kích thước size (bytes) Con trỏ đến vùng nhớ được cấp phát NULL nếu không đủ bộ nhớ int *p = (int *)calloc(10, sizeof(int)); if (p == NULL) printf(“Không đủ bộ nhớ! ”); 6 &VC BB Cấp phát bộ nhớ động void *free(void *ptr) Giải phóng vùng nhớ do ptr trỏ đến, được cấp bởi các hàm malloc(), calloc(). Nếu ptr là NULL thì không làm gì cả. Không có int *p = (int *)malloc(10*sizeof(int)); free(p); 7 &VC BB Cấp phát bộ nhớ động = new [size] Cấp phát vùng nhớ có kích thước sizeof()*size Con trỏ đến vùng nhớ được cấp phát NULL nếu không đủ bộ nhớ int *a1 = (int *)malloc(sizeof(int)); int *a2 = new int; int *p1 = (int *)malloc(10*sizeof(int)); int *p2 = new int[10]; 8 &VC BB Cấp phát bộ nhớ động delete [] Giải phóng vùng nhớ do trỏ đến (được cấp phát bằng new) Không có! int *a = new int; delete a; int *p = new int[10]; delete []p; 9 &VC BB Cấp phát bộ nhớ động Lưu ý Cấp phát bằng malloc, calloc thì giải phóng bằng free, cấp phát bằng new thì giải phóng bằng delete. Cấp phát bằng new thì giải phóng bằng delete, cấp phát mảng bằng new [] thì giải phóng bằng delete []. 10 &VC BB Con trỏ và mảng một chiều Mảng một chiều int array[3]; Tên mảng array là một hằng con trỏ không thể thay đổi giá trị của hằng này. array là địa chỉ đầu tiên của mảng array == &array[0] 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 … … array 11 &VC BB Con trỏ và mảng một chiều Con trỏ đến mảng một chiều int array[3], *parray; parray = array; // Cách 1 parray = &array[0]; // Cách 2 18 19 1A 1B 1C 1D 1E 1F … 0B 00 00 00 … parray 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 … … array 12 &VC BB Phép toán số học trên con trỏ Phép cộn ...
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật lập trình: Chương 3 (phần 2) - Võ Quang Hoàng KhangTrường Đại Học Công Nghiệp TP. HCM Khoa Công Nghệ Thông Tin CHƯƠNG 3: KIỂU CON TRỎ(p2) Võ Quang Hoàng Khang Email: vqhkhang@gmail.com 1 &VC BB Nội dung 1 Cấp phát bộ nhớ động 2 Con trỏ và mảng một chiều 3 Con trỏ và cấu trúc 4 Bài tập – Kiểm tra 2 &VC BB Cấp phát bộ nhớ tĩnh và động Cấp phát 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 bộ nhớ lưu trữ tốn bộ nhớ, không thay đổi được kích thước, … Cấp phát động (dynamic memory allocation) Cần bao nhiêu cấp phát bấy nhiêu. Có thể giải phóng nếu không cần sử dụng. 3 &VC BB Cấp phát bộ nhớ động Thuộc thư viện hoặc malloc calloc free Trong C++ new delete 4 &VC BB Cấp phát bộ nhớ động void *malloc(size_t size) Cấp phát một vùng nhớ size (bytes) Con trỏ đến vùng nhớ được cấp phát NULL nếu không đủ bộ nhớ int *p = (int *)malloc(10*sizeof(int)); if (p == NULL) printf(“Không đủ bộ nhớ! ”); 5 &VC BB Cấp phát bộ nhớ động void *calloc(size_t num, size_t size) Cấp phát vùng nhớ gồm num phần tử, mỗi phần tử kích thước size (bytes) Con trỏ đến vùng nhớ được cấp phát NULL nếu không đủ bộ nhớ int *p = (int *)calloc(10, sizeof(int)); if (p == NULL) printf(“Không đủ bộ nhớ! ”); 6 &VC BB Cấp phát bộ nhớ động void *free(void *ptr) Giải phóng vùng nhớ do ptr trỏ đến, được cấp bởi các hàm malloc(), calloc(). Nếu ptr là NULL thì không làm gì cả. Không có int *p = (int *)malloc(10*sizeof(int)); free(p); 7 &VC BB Cấp phát bộ nhớ động = new [size] Cấp phát vùng nhớ có kích thước sizeof()*size Con trỏ đến vùng nhớ được cấp phát NULL nếu không đủ bộ nhớ int *a1 = (int *)malloc(sizeof(int)); int *a2 = new int; int *p1 = (int *)malloc(10*sizeof(int)); int *p2 = new int[10]; 8 &VC BB Cấp phát bộ nhớ động delete [] Giải phóng vùng nhớ do trỏ đến (được cấp phát bằng new) Không có! int *a = new int; delete a; int *p = new int[10]; delete []p; 9 &VC BB Cấp phát bộ nhớ động Lưu ý Cấp phát bằng malloc, calloc thì giải phóng bằng free, cấp phát bằng new thì giải phóng bằng delete. Cấp phát bằng new thì giải phóng bằng delete, cấp phát mảng bằng new [] thì giải phóng bằng delete []. 10 &VC BB Con trỏ và mảng một chiều Mảng một chiều int array[3]; Tên mảng array là một hằng con trỏ không thể thay đổi giá trị của hằng này. array là địa chỉ đầu tiên của mảng array == &array[0] 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 … … array 11 &VC BB Con trỏ và mảng một chiều Con trỏ đến mảng một chiều int array[3], *parray; parray = array; // Cách 1 parray = &array[0]; // Cách 2 18 19 1A 1B 1C 1D 1E 1F … 0B 00 00 00 … parray 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 … … array 12 &VC BB Phép toán số học trên con trỏ Phép cộn ...
Tìm kiếm theo từ khóa liên quan:
Kỹ thuật lập trình Bài giảng Kỹ thuật lập trình Kiểu con trỏ Mảng một chiều Cấp phát bộ nhớ động Cấp phát tĩnhTài liệu liên quan:
-
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 281 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 224 0 0 -
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 207 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 178 0 0 -
Luận văn: Nghiên cứu kỹ thuật giấu tin trong ảnh Gif
33 trang 156 0 0 -
Báo cáo thực tập Công nghệ thông tin: Lập trình game trên Unity
27 trang 122 0 0 -
Giáo trình về phân tích thiết kế hệ thống thông tin
113 trang 114 0 0 -
LUẬN VĂN: Tìm hiểu kỹ thuật tạo bóng cứng trong đồ họa 3D
41 trang 111 0 0 -
Bài giảng Kỹ thuật lập trình - Chương 10: Tổng kết môn học (Trường Đại học Bách khoa Hà Nội)
67 trang 108 0 0 -
Giáo trình Nhập môn lập trình VB6: Phần 2
184 trang 98 0 0