Con trỏ và quản lý bộ nhớ động
Hoàng Thân Anh Tuấn
Khoa Toán – Tin học
Đại học Sư phạm TPHCM
Nội dung
Tổ chức của chương trình
Địa chỉ
Biến con trỏ
Các thao tác trên biến con trỏ
Biến tĩnh và biến động
Cấp phát và hủy biến động
Tổ chức của chương trình
Một chương trình được chia ra thành nhiều phân
đoạn (segment).
Mỗi segment có thể xem như là một mảng một
chiều.
Mỗi segment lưu một loại dữ liệu nhất định.
Data Segment: lưu các biến toàn cục
Stack Segment: lưu các biến cục bộ của các hàm và các
thông tin khác
Heap Segment: lưu các biến động
Code Segment: lưu các chỉ thị đoạn mã của chương trình
Địa chỉ
Một ô nhớ bất kỳ (một biến bất kỳ) trong chương
trình có một địa chỉ duy nhất.
Mỗi địa chỉ gồm có hai thành phần:
Tên segment lưu biến
Vị trí của biến trong segment
Địa chỉ thường được ký hiệu là segment:offset
Segment có thể là Data, Heap, Code, Stack
Offset là vị trí của biến trong segment tương ứng
Ví d
int a;
int main()
{
int b;
double c;
return 0;
}
16
12
8 c
4
0 b
16
12
8
4
0 a
Stack Data