QUẢN LÝ BỘ NHỚ
Số trang: 24
Loại file: ppt
Dung lượng: 1.87 MB
Lượt xem: 18
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:
Nhu cầu chuyển đổi kiểu: Mọi đối tượng dữ liệu trong C đều có kiểu xácđịnh.Biến có kiểu char, int, float, double, …Con trỏ trỏ đến kiểu char, int, float, double, …Xử lý thế nào khi gặp một biểu thức với nhiềukiểu khác nhau?C tự động chuyển đổi kiểu (ép kiểu).Người sử dụng tự chuyển đổi kiểu.
Nội dung trích xuất từ tài liệu:
QUẢN LÝ BỘ NHỚTrườngĐạihọcKhoahọcTựnhiênKhoaCôngnghệthôngtinBộmônTinhọccơsở NHẬPMÔNLẬPTRÌNH ĐặngBìnhPhương dbphuong@fit.hcmuns.edu.vn QUẢNLÝBỘNHỚ 1 &VC BB Nộidung 1 Chuyển đổi kiểu (ép kiểu) 2 Cấu trúc CT C trong bộ nhớ 3 Cấp phát bộ nhớ động 4 Các thao tác trên khối nhớ NMLTQuảnlýbộnhớ 2 &VC BB Nhucầuchuyểnđổikiểu Mọi đối tượng dữ liệu trong C đều có kiểu xác định Biến có kiểu char, int, float, double, … Con trỏ trỏ đến kiểu char, int, float, double, … Xử lý thế nào khi gặp một biểu thức với nhiều kiểu khác nhau? C tự động chuyển đổi kiểu (ép kiểu). Người sử dụng tự chuyển đổi kiểu. NMLTQuảnlýbộnhớ 3 &VC BB Chuyểnđổikiểutựđộng Sự tăng cấp (kiểu dữ liệu) trong biểu thức Các thành phần cùng kiểu • Kết quả là kiểu chung • Ví dụ: int / int int, float / float float Các thành phần khác kiểu • Kết quả là kiểu bao quát nhất • char < int < long < float < double • Ví dụ: int / float float / float, … • Lưu ý, chỉ chuyển đổi tạm thời (nội bộ). NMLTQuảnlýbộnhớ 4 &VC BB Chuyểnđổikiểutựđộng Phép gán = ; BT ở vế phải luôn được tăng cấp (hay giảm cấp) tạm thời cho giống kiểu với BT ở vế trái. int i; float f = 1.23; i = f; // f tạm thời thành int f = i; // i tạm thời thành float Có thể làm mất tính chính xác của số nguyên khi chuyển sang số thực hạn chế! int i = 3; float f; f = i; // f = 2.999995 NMLTQuảnlýbộnhớ 5 &VC BB Chuyểnđổitườngminh(épkiểu) Ý nghĩa Chủ động chuyển đổi kiểu (tạm thời) nhằm tránh những kết quả sai lầm. Cú pháp () Ví dụ int x1 = 1, x2 = 2; float f1 = x1 / x2; // f1 = 0.0 float f2 = (float)x1 / x2; // f2 = 0.5 float f3 = (float)(x1 / x2); // f3 = 0.0 NMLTQuảnlýbộnhớ 6 &VC BB Cấpphátbộnhớtĩnhvàđộ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. Sử dụng vùng nhớ ngoài chương trình (cả bộ nhớ ảo virtual memory). NMLTQuảnlýbộnhớ 7 &VC BB CấutrúcmộtCTCtrongbộnhớ Toàn bộ tập tin chương trình sẽ được nạp vào bộ nhớ tại vùng nhớ còn trống, gồm 4 phần: STACK Lưuđốitượngcụcbộ LastInFirstOut Khithựchiệnhàm Vùngnhớtrống Vùngcấpphátđộng HEAP (RAMtrốngvàbộnhớảo) Đốitượngtoàncục Vùngcấppháttĩnh &tĩnh (kíchthướccốđịnh) Gồmcáclệnhvàhằng Mãchươngtrình (kíchthướccốđịnh) NMLTQuảnlýbộnhớ 8 &VC BB Cấpphátbộnhớđộng Thuộc thư viện hoặc malloc calloc realloc free Trong C++ new delete NMLTQuảnlýbộnhớ 9 &VC BB Cấpphátbộnhớđộng void*malloc(size_tsize) Cấp phát trong HEAP một vùng nhớ size (bytes) size_tthaychounsigned(trong) Contrỏđếnvùngnhớmớiđượccấpphát NULLnếukhôngđủbộnhớ int*p=(int*)malloc(10*sizeof(int)); if(p==NULL) printf(“Khôngđủbộnhớ!”); NMLTQuảnlýbộnhớ 10 &VC ...
Nội dung trích xuất từ tài liệu:
QUẢN LÝ BỘ NHỚTrườngĐạihọcKhoahọcTựnhiênKhoaCôngnghệthôngtinBộmônTinhọccơsở NHẬPMÔNLẬPTRÌNH ĐặngBìnhPhương dbphuong@fit.hcmuns.edu.vn QUẢNLÝBỘNHỚ 1 &VC BB Nộidung 1 Chuyển đổi kiểu (ép kiểu) 2 Cấu trúc CT C trong bộ nhớ 3 Cấp phát bộ nhớ động 4 Các thao tác trên khối nhớ NMLTQuảnlýbộnhớ 2 &VC BB Nhucầuchuyểnđổikiểu Mọi đối tượng dữ liệu trong C đều có kiểu xác định Biến có kiểu char, int, float, double, … Con trỏ trỏ đến kiểu char, int, float, double, … Xử lý thế nào khi gặp một biểu thức với nhiều kiểu khác nhau? C tự động chuyển đổi kiểu (ép kiểu). Người sử dụng tự chuyển đổi kiểu. NMLTQuảnlýbộnhớ 3 &VC BB Chuyểnđổikiểutựđộng Sự tăng cấp (kiểu dữ liệu) trong biểu thức Các thành phần cùng kiểu • Kết quả là kiểu chung • Ví dụ: int / int int, float / float float Các thành phần khác kiểu • Kết quả là kiểu bao quát nhất • char < int < long < float < double • Ví dụ: int / float float / float, … • Lưu ý, chỉ chuyển đổi tạm thời (nội bộ). NMLTQuảnlýbộnhớ 4 &VC BB Chuyểnđổikiểutựđộng Phép gán = ; BT ở vế phải luôn được tăng cấp (hay giảm cấp) tạm thời cho giống kiểu với BT ở vế trái. int i; float f = 1.23; i = f; // f tạm thời thành int f = i; // i tạm thời thành float Có thể làm mất tính chính xác của số nguyên khi chuyển sang số thực hạn chế! int i = 3; float f; f = i; // f = 2.999995 NMLTQuảnlýbộnhớ 5 &VC BB Chuyểnđổitườngminh(épkiểu) Ý nghĩa Chủ động chuyển đổi kiểu (tạm thời) nhằm tránh những kết quả sai lầm. Cú pháp () Ví dụ int x1 = 1, x2 = 2; float f1 = x1 / x2; // f1 = 0.0 float f2 = (float)x1 / x2; // f2 = 0.5 float f3 = (float)(x1 / x2); // f3 = 0.0 NMLTQuảnlýbộnhớ 6 &VC BB Cấpphátbộnhớtĩnhvàđộ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. Sử dụng vùng nhớ ngoài chương trình (cả bộ nhớ ảo virtual memory). NMLTQuảnlýbộnhớ 7 &VC BB CấutrúcmộtCTCtrongbộnhớ Toàn bộ tập tin chương trình sẽ được nạp vào bộ nhớ tại vùng nhớ còn trống, gồm 4 phần: STACK Lưuđốitượngcụcbộ LastInFirstOut Khithựchiệnhàm Vùngnhớtrống Vùngcấpphátđộng HEAP (RAMtrốngvàbộnhớảo) Đốitượngtoàncục Vùngcấppháttĩnh &tĩnh (kíchthướccốđịnh) Gồmcáclệnhvàhằng Mãchươngtrình (kíchthướccốđịnh) NMLTQuảnlýbộnhớ 8 &VC BB Cấpphátbộnhớđộng Thuộc thư viện hoặc malloc calloc realloc free Trong C++ new delete NMLTQuảnlýbộnhớ 9 &VC BB Cấpphátbộnhớđộng void*malloc(size_tsize) Cấp phát trong HEAP một vùng nhớ size (bytes) size_tthaychounsigned(trong) Contrỏđếnvùngnhớmớiđượccấpphát NULLnếukhôngđủbộnhớ int*p=(int*)malloc(10*sizeof(int)); if(p==NULL) printf(“Khôngđủbộnhớ!”); NMLTQuảnlýbộnhớ 10 &VC ...
Tìm kiếm theo từ khóa liên quan:
giáo trình tin học cơ sở nhập môn lập trình quản lý bộ nhớ chuyển đổi kiểu Cấp phát bộ nhớ động Các thao tác trên khối nhớGợi ý tài liệu liên quan:
-
Đề cương chi tiết học phần Cấu trúc dữ liệu và giải thuật (Data structures and algorithms)
10 trang 317 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 245 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 174 0 0 -
Mẹo hay trong sử dụng máy tính: Phần 2
181 trang 172 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 167 0 0 -
Giáo trình nhập môn lập trình - Phần 22
48 trang 138 0 0 -
Giáo trình Lý thuyết hệ điều hành: Phần 2 - Nguyễn Kim Tuấn
139 trang 122 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 106 0 0 -
Bài giảng Nguyên lý hệ điều hành: Chương 4 - ĐH Bách khoa Đà Nẵng
58 trang 101 0 0 -
Tiểu luận: Quản lý bộ nhớ trong hệ điều hành windows
21 trang 97 0 0