Category Archives cho Lập Trình C++

Stanford – đào tạo và phát triển công nghệ xin chia sẻ với các bạn có đam mê về lập trình và hiện đang học các khóa về lập trình C++ và yêu thích khám phá những kiến thức về lập trình về Category Archives trong lập Trình C++.

Stanford – đào tạo và phát triển công nghệ xin chia sẻ với các bạn có đam mê về lập trình và hiện đang học các khóa về lập trình C++ và yêu thích khám phá những kiến thức về lập trình  về Category Archives trong lập Trình C++.

Cấp phát động trong C

Ngôn ngữ C cung cấp cho chúng ta 4 hàm dùng để cấp phát và giải phóng bộ nhớ động, nhằm giải quyết các vấn đề liên quan đến bộ nhớ. Đó là malloc, calloc, realloc và free.
Các hàm này đều nằm trong thư viện stdlib.h
Để biết cách sử dụng các hàm trên ta phải xem nguyên mẫu hàm (prototype) của nó:

1. Trước hết là hàm malloc:

void * malloc ( size_t size );

Hàm này dùng để cấp phát bộ nhớ động với kích thước size.

Ví dụ:  

a=(int)malloc(sizeof(int));

2. Hàm calloc:

void * calloc ( size_t num, size_t size );

Hàm này dùng để cấp phát bộ nhớ động cho một mảng với size_t num là số phần tử của mảng.
3. Hàm realloc:

void * realloc ( void * ptr, size_t size );

Dùng để thay đổi kích thước bộ nhớ đã cấp phát với ptr là địa chỉ của bộ nhớ đã cấp phát và size là kích thước muốn cấp phát lại cho vùng nhớ đó.

4. Hàm free:

void free ( void * ptr );

Dùng để giải phóng vùng nhớ đã cấp phát.
Chương trình ví dụ sử dụng cấp phát và giải phóng bộ nhớ động.

/* calloc example */

#include <stdio.h>

#include <stdlib.h>

int main ()

{

  int i,n;

  int * pData;

  printf ("Amount of numbers to be entered: ");

  scanf ("%d",&i);

  pData = (int*) calloc (i,sizeof(int));

  if (pData==NULL) exit (1);

  for (n=0;n<i;n++)

  {

    printf ("Enter number #%d: ",n);

    scanf ("%d",&pData[n]);

  }

  printf ("You have entered: ");

  for (n=0;n<i;n++) printf ("%d ",pData[n]);

  free (pData);

  return 0;

}

Mọi  khó khăn khi tiếp cận với một ngôn ngữ lập trình mới hay cần sự tư vấn, định hướng theo ngôn ngữ lập trình nào, công nghệ nào, phương pháp học hiệu quả,…? Các bạn hãy liên hệ với Stanford qua số hotline: (04) 6275.2212 - 0936.172.315 - 0963.723.236 để được gọi lại tư vấn miễn phí.

Stanford hân hạnh được đồng hành cùng bạn!




Tags: