void * calloc (size_t nelements, size_t size);
nó sử dụng hai tham số thay vì một. Hai tham số này được nhân với nhau để có
được kích thước tổng cộng của khối nhớ cần cấp phát. Thông thường tham số
đầu tiên (
nelements
) là số phần tử và tham số thức hai (
size
) là kích thước của
mỗi phần tử. Ví dụ, chúng ta có thể định nghĩa
bobby
với
calloc
như sau:
int * bobby;
bobby = (int *) calloc (5, sizeof(int));
Một điểm khác nhau nữa giữa
malloc
và
calloc
là
calloc
khởi tạo tất cả các
phần tử của nó về 0.
Hàm realloc.
Nó thay đổi kích thước của khối nhớ đã được cấp phát cho một con trỏ.
void * realloc (void * pointer, size_t size);
tham số
pointer
nhận vào một con trỏ đã được cấp phát bộ nhớ hay một con
trỏ null, và
size
chỉ định kích thước của khối nhớ mới. Hàm này sẽ cấp phát
size
byte bộ nhớ cho con trỏ. Nó có thể phải thay đổi vị vị trí của khối nhớ để
có thể đủ chỗ cho kích thước mới của khối nhớ, trong trường hợp này nội dung
hiện thời của khối nhớ được copy tới vị trí mới để đảm bảo dữ liệu không bị
mất. Con trỏ mới trỏ tới khối nhớ được hàm trả về. Nếu không thể thay đổi kích
thước của khối nhớ thì hàm sẽ trả về một con trỏ null nhưng tham số
pointer
và
nội dung của nó sẽ không bị thay đổi.
Hàm free.
Hàm này giải phóng một khối nhớ động đã được cấp phát bởi
malloc
,
calloc
hoặc
realloc
.
void free (void * pointer);
Hàm này chỉ được dùng để giải phóng bộ nhớ được cấp phát bởi các hàm
malloc
,
calloc
and
realloc
.