Bài giảng Nhập môn lập trình - Bài 10: Quản lý bộ nhớ
Số trang: 28
Loại file: ppt
Dung lượng: 1.99 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 cung cấp cho người học các kiến thức: Quản lý bộ nhớ. Hi vọng đây sẽ là một tài liệu hữu ích dành cho các bạn sinh viên đang theo học môn dùng làm tài liệu học tập và nghiên cứu.
Nội dung trích xuất từ tài liệu:
Bài giảng Nhập môn lập trình - Bài 10: 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.hcmus.edu.vn CHUYỂNĐỔIKIỂUDỮLIỆU &CẤPPHÁTBỘNHỚĐỘNG 1 &&VCVC BB 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ớ Quảnlýbộnhớ 2 &&VCVC BB BB Nhucầuchuyểnđổikiểu MọiđốitượngdữliệutrongCđềucókiểuxác định Biếncókiểuchar,int,float,double,… Contrỏtrỏđếnkiểuchar,int,float,double,… Xửlýthếnàokhigặpmộtbiểuthứcvớinhiều kiểukhácnhau? Ctựđộngchuyểnđổikiểu(épkiểu). Ngườisửdụngtựchuyểnđổikiểu. Quảnlýbộnhớ 3 &&VCVC BB BB Chuyểnđổikiểutựđộng Sựtăngcấp(kiểudữliệu)trongbiểuthức Cácthànhphầncùngkiểu • Kếtquảlàkiểuchung • int/intint,float/floatfloat • Vídụ:2/40,2.0/4.00.5 Cácthànhphầnkháckiểu • Kếtquảlàkiểubaoquátnhất • char &&VCVC BB BB Chuyểnđổikiểutựđộng Phépgán=; BTởvếphảiluônđượctăngcấp(haygiảm cấp)tạmthờichogiốngkiểuvớiBTở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àmmấttínhchínhxáccủasốnguyên khichuyểnsangsốthựchạnchế! int i = 3; float f; f = i; // f = 2.999995 Quảnlýbộnhớ 5 &&VCVC BB BB Chuyểnđổitườngminh(épkiểu) Ýnghĩa Chủđộngchuyểnđổikiểu(tạmthời)nhằm tránhnhữngkếtquảsailầ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 Quảnlýbộnhớ 6 &&VCVC BB BB Cấpphátbộnhớtĩnhvàđộng Cấppháttĩnh(staticmemoryallocation) Khaibáobiến,cấutrúc,mảng,… Bắtbuộcphảibiếttrướccầnbaonhiềubộ nhớlưutrữtốnbộnhớ,khôngthayđổi đượckíchthước,… Cấpphátđộng(dynamicmemoryallocation) Cầnbaonhiêucấpphátbấynhiêu. Cóthểgiảiphóngnếukhôngcầnsửdụng. Sửdụngvùngnhớngoàichươngtrình(cảbộ nhớảovirtualmemory). Quảnlýbộnhớ 7 &&VCVC BB BB CấutrúcmộtCTCtrongbộnhớ Toànbộtậptinchươngtrìnhsẽđượcnạpvào bộnhớtạivùngnhớcòntrống,gồm4phần: STACK STACK Lưuđốitượngcụcbộ LastInFirstOut LastInFirstOut Khithựchiệnhàm Vùngnh Vùngnhớớtr trốống ng Vùngcấpphátđộng HEAP HEAP (RAMtrốngvàbộnhớảo) ĐĐốốititượngtoànc ượngtoàncụụcc Vùngcấppháttĩnh &tĩnh &tĩnh (kíchthướccốđịnh) Gồmcáclệnhvàhằng Mãchươngtrình Mãchươngtrình (kíchthướccốđịnh) Quảnlýbộnhớ 8 &&VCVC BB BB Cấpphátbộnhớđộng Thuộcthưviệnhoặc malloc calloc realloc free TrongC++ new delete Quảnlýbộnhớ 9 &&VCVC BB BB Cấpphátbộnhớđộng void*malloc(size_tsize) void*malloc(size_tsize) Cấp phát trong HEAP một vùng nhớ size (bytes) size_tthaychounsigned(trong) Thành công: Con trỏ đến vùng nhớ mới đượccấpphát. Thấtbại:NULL(khôngđủbộnhớ). int*p=(int*)mall ...
Nội dung trích xuất từ tài liệu:
Bài giảng Nhập môn lập trình - Bài 10: 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.hcmus.edu.vn CHUYỂNĐỔIKIỂUDỮLIỆU &CẤPPHÁTBỘNHỚĐỘNG 1 &&VCVC BB 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ớ Quảnlýbộnhớ 2 &&VCVC BB BB Nhucầuchuyểnđổikiểu MọiđốitượngdữliệutrongCđềucókiểuxác định Biếncókiểuchar,int,float,double,… Contrỏtrỏđếnkiểuchar,int,float,double,… Xửlýthếnàokhigặpmộtbiểuthứcvớinhiều kiểukhácnhau? Ctựđộngchuyểnđổikiểu(épkiểu). Ngườisửdụngtựchuyểnđổikiểu. Quảnlýbộnhớ 3 &&VCVC BB BB Chuyểnđổikiểutựđộng Sựtăngcấp(kiểudữliệu)trongbiểuthức Cácthànhphầncùngkiểu • Kếtquảlàkiểuchung • int/intint,float/floatfloat • Vídụ:2/40,2.0/4.00.5 Cácthànhphầnkháckiểu • Kếtquảlàkiểubaoquátnhất • char &&VCVC BB BB Chuyểnđổikiểutựđộng Phépgán=; BTởvếphảiluônđượctăngcấp(haygiảm cấp)tạmthờichogiốngkiểuvớiBTở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àmmấttínhchínhxáccủasốnguyên khichuyểnsangsốthựchạnchế! int i = 3; float f; f = i; // f = 2.999995 Quảnlýbộnhớ 5 &&VCVC BB BB Chuyểnđổitườngminh(épkiểu) Ýnghĩa Chủđộngchuyểnđổikiểu(tạmthời)nhằm tránhnhữngkếtquảsailầ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 Quảnlýbộnhớ 6 &&VCVC BB BB Cấpphátbộnhớtĩnhvàđộng Cấppháttĩnh(staticmemoryallocation) Khaibáobiến,cấutrúc,mảng,… Bắtbuộcphảibiếttrướccầnbaonhiềubộ nhớlưutrữtốnbộnhớ,khôngthayđổi đượckíchthước,… Cấpphátđộng(dynamicmemoryallocation) Cầnbaonhiêucấpphátbấynhiêu. Cóthểgiảiphóngnếukhôngcầnsửdụng. Sửdụngvùngnhớngoàichươngtrình(cảbộ nhớảovirtualmemory). Quảnlýbộnhớ 7 &&VCVC BB BB CấutrúcmộtCTCtrongbộnhớ Toànbộtậptinchươngtrìnhsẽđượcnạpvào bộnhớtạivùngnhớcòntrống,gồm4phần: STACK STACK Lưuđốitượngcụcbộ LastInFirstOut LastInFirstOut Khithựchiệnhàm Vùngnh Vùngnhớớtr trốống ng Vùngcấpphátđộng HEAP HEAP (RAMtrốngvàbộnhớảo) ĐĐốốititượngtoànc ượngtoàncụụcc Vùngcấppháttĩnh &tĩnh &tĩnh (kíchthướccốđịnh) Gồmcáclệnhvàhằng Mãchươngtrình Mãchươngtrình (kíchthướccốđịnh) Quảnlýbộnhớ 8 &&VCVC BB BB Cấpphátbộnhớđộng Thuộcthưviệnhoặc malloc calloc realloc free TrongC++ new delete Quảnlýbộnhớ 9 &&VCVC BB BB Cấpphátbộnhớđộng void*malloc(size_tsize) void*malloc(size_tsize) Cấp phát trong HEAP một vùng nhớ size (bytes) size_tthaychounsigned(trong) Thành công: Con trỏ đến vùng nhớ mới đượccấpphát. Thấtbại:NULL(khôngđủbộnhớ). int*p=(int*)mall ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Nhập môn lập trình Nhập môn lập trình Quản lý bộ nhớ Các thao tác trên khối nhớ Cấp phát bộ nhớ động Cấu trúc CT C trong bộ nhớ Chuyển đổi kiểuGợ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 172 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 166 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 96 0 0