hàm malloc, alloc, realloc, free, cấp phát và giải phóng bộ nhớ động trong lập trình c
- biến động được tạ ra khi chạy chương trình. thông qua con trỏ bộ nhớ được cấp phát và quản lý
- các thao tác trên bộ nhớ và con trỏ nằm trong thư viện stdlib.h và alloc.h
- các hàm cấp phát và giai phóng bộ nhớ: maaloc, alloc, realloc, free
- chứa năng của hàm malloc là cấ phát 1 vùng nhớ có kích thowcs size
ví dụ: int *p;
p=(int *)malloc(100);
p=(int *)malloc(80*sizeof(int)); - hàm free dùng để giải phóng bộ nhớ đã cấp phát.
free(p); - ví dụ:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
void mian()
{
char *s;
s=(char*)malloc(10);
strcpy(s,"HELLO");
puts(s);
free(s);
} - hàm calloc cấp phát bộ nhớ nitems*size byte
void *calloc(size_t nitems,size byte); - hàm realloc điêuchỉnh lai kích thước đã cấp phát là block size byte
void *realloc(void *block,sizebyte); - khởi tạo mảng cấp phát động
int *a=(int *)malloc(n*sizeof(int)):
int *a=(int*)calloc(n,sizeof(int)); - kiểm tra cấp phát thành công
if(a!=NULL)
{
//làm việc với mảng
free(a);//giai phóng
} - cấp phât động mảng 2 chiều
int **a=(int**)malloc(hàng*sizeof(int*));
for(int i=0;i<n;i++)
a[i]=(int*)malloc(cột*sizeof(int));