SLIDE1

Wednesday, December 31, 2014

hàm malloc cập phát bộ nhớ động

hàm malloc, alloc,  realloc, free, cấp phát và giải phóng bộ nhớ động trong lập trình c

  1. 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ý
  2. các thao tác trên bộ nhớ và con trỏ nằm trong thư viện stdlib.halloc.h
  3. các hàm cấp phát và giai phóng bộ nhớ: maaloc, alloc, realloc, free
  4.  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));
  5. hàm free dùng để giải phóng bộ nhớ đã cấp phát.
    free(p);
  6. 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);
    }
  7. hàm calloc cấp phát bộ nhớ nitems*size byte
    void *calloc(size_t nitems,size byte);
  8. hàm realloc điêuchỉnh lai kích thước đã cấp phát là block size byte
    void *realloc(void *block,sizebyte);
  9. 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));
  10. 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
    }
  11. 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));