Danh mục

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    
tailieu_vip

Phí tải xuống: 17,000 VND Tải xuống file đầy đủ (28 trang) 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/intint,float/floatfloat • Vídụ:2/40,2.0/4.00.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ựchạ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ài liệu được xem nhiều: