
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