
Topics
Các c uấ trúc, c pấ phát đ ngộ
Các phép toán File trên bộ nhớ
t ngưở t ngượ .
Bài t pậ

C pấ phát đ ngộ
M tộ m ngả các bi nế đã đ cượ nấ đ nhị kích th cướ ,
dùng để lưu trữ 1 l ngượ bi nế đã xác đ nhị (t iạ th iờ
đi mể biên d chị).
Kích thước này sẽ không thể thay đ iổ sau khi
biên d chị.
Tuy nhiên chúng ta th ngườ không bi tế tr cướ
đ cượ số l ngượ không gian c nầ thi tế cho m ngả .
Vì v yậ nên có thể sử d ngụ c pấ phát bộ nhớ đ ngộ
để kh cắ ph cụ nh cượ đi mể trên c aủ m ngả, tránh
lãng phí không gian nhớ.

Hàm malloc
void * malloc(unsigned int nbytes);
Hàm malloc đ cượ sử d ngụ để c pấ phát
đ ngộ nbytes trong bộ nhớ.
malloc trả về con trỏ t iớ vùng nhớ
đ cượ c pấ phát n uế thành công, trả về
con trỏ NULL n uế th tấ b iạ.
Nên ki mể tra xem có c pấ phát thành
công hay không.
Ph iả #include<stdlib.h>

Ví dụ - Đ oả ng cượ m ngả đ ngộ
int main(void)
{
int i, n, *p;
printf(“B nạ mu nố nh pậ bao nhiêu số ?\n");
scanf("%d", &n);
/* C pấ phát 1 m ngả int v iớ kích th cướ thích h p */ợ
p = (int *)malloc(n * sizeof(int));
if (p == NULL)
{
printf("Memory allocation failed!\n");
return 1;
}

Ví dụ - Đ oả ng cượ m ngả đ ngộ
int main(void)
{
. . .
/* Nh nậ các số từ bàn phím */
printf("Please enter numbers now:\n");
for (i = 0; i < n; i++)
scanf("%d", &p[i]);
/* Đưa ra theo thứ tự ng cượ l i*/ạ
printf("The numbers in reverse order are \n");
for (i = n - 1; i >= 0; --i)
printf("%d ",p[i]);
printf("\n");
/* Gi i phóng bả ộ nh */ớ
free(p);
return 0;
}