1. Trang chủ
  2. » Công Nghệ Thông Tin

Hướng đối tượng Sử dụng bộ nhớ

7 294 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Hướng đối tượng sử dụng bộ nhớ
Tác giả Vương Đức Bình
Người hướng dẫn Tổ Bộ Môn CNTT
Trường học Trường CĐBT
Thể loại bài viết
Định dạng
Số trang 7
Dung lượng 68,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Hướng đối tượng Sử dụng bộ nhớ

Trang 1

SỬ DỤNG BỘ NHỚ

TRONG C++

Trang 2

Unitialized data

Initialized data

Code

Stack

Hình ảnh bộ nhớ khi chương trình C++ đang thực thi

Vùng nhớ thấp

Vùng nhớ cao

C++ chia bộ nhớ thành 4 vùng:

Vùng mã chương trình

(Code area)

Vùng dữ liệu (Data area)

Vùng Heap

Vùng Stack

Trang 3

Unitialized data

Initialized data

Code

Stack

Vương Đức Bình - Tổ bộ môn CNTT - Trường CĐBT

Có gì trong vùng mã chương trình ?

Chương trình nguồn:

int my_int, his_int;

main( ) {

my_int = 5;

my_int++;

his_int -= 10;

}

Chương trình đã biên dịch thành mã hợp ngữ cho 80x86:

MOV my_int,5 INC my_int SUB his_int,10

MOV my_int,5

INC my_int

SUB

his_int,10

Trang 4

Unitialized data

Initialized data

Code

Stack

Có gì trong vùng dữ liệu ?

Chương trình nguồn:

int your_int, my_int, his_int=3;

main( ) {

my_int = 5;

my_int++;

his_int -= 10;

} void my_func(void) {

int her_int; static int s_int=3;

her_int=5;

s_int++;

}

MOV my_int,5

INC my_int

SUB

his_int,10

his_int =3

your_int

=0

my_int=

0

1 Mọi biến không được khởi tạo đều xếp vào vùng Unitialized area và đều được gán giá trị 0

2 Không phải biến nào cũng được đặt vào vùng Data Chỉ có 3 loại biến được đặt vào vùng này:

• Biến toàn cục

• Biến tĩnh.

• Mảng được khởi tạo và cấu trúc (struct / class)

Các biến her_int và s_int sẽ được đặt vào đây khi hàm my_func được gọi và có thể bị tái

Trang 5

Unitialized data

Initialized data

Code

Stack

Vương Đức Bình - Tổ bộ môn CNTT - Trường CĐBT

Có gì trong vùng nhớ Heap ?

# include <alloc.h>

int my_int, his_int=3;

main( ) {

char *my_data;

my_int=5;

my_int++;

his_int -=10;

my_data=malloc(10);

} my_data[10]

his_int=3

my_int=0

Mảng này chỉ được bố trí khi câu lệnh này được thực thi

MOV my_int,5

INC my_int

SUB his_int,10

*my_data

Trang 6

Unitialized data

Initialized data

Code

Stack

Có gì trong vùng nhớ Stack ?

– Chứa các biến tự động.

– Chuyển giao tham số cho các hàm.

– Chứa các địa chỉ trở về.

Trang 7

Unitialized data

Initialized data

Code

Stack

Vương Đức Bình - Tổ bộ môn CNTT - Trường CĐBT

Tóm tắt

PROGRAM CODE

INITIALIZED STATIC VARIABLES INITIALIZED GLOBAL VARIABLES

UNITIALIZED STATIC VARIABLES UNITIALIZED GLOBAL VARIABLES

VARIABLES ALLOCATED WITH new, malloc(), farmalloc(),realloc() and calloc()

AUTOMATIC VARIABLES.

PASSING PARAMETERS USE BY FUNCTION CALL.

RETURN ADDESSES.

Ngày đăng: 13/11/2012, 17:00

TỪ KHÓA LIÊN QUAN

w