Theo mình được biết ( từ cuốn Linux Application Development), malloc sẽ xin cấp được cấp phát 1 vùng nhớ có độ dài xác định trong bộ nhớ Heap.
Khi các trang nhớ được cấp, nó sẽ được gán 1 cái nhãn để cho các ứng dụng khác không được sử dụng nó nữa.
Sau khi sử dụng xong vùng nhớ này, ta sử dụng hàm free đơn giản là chỉ để đánh dấu là không chương trình nào sử dụng đến vùng nhớ đó nữa chứ dữ liệu trên đó vẫn chưa được xóa.
Muốn tìm hiểu thêm, bạn có thể đọc cuốn đó.