Duy Nguyen Hoang A fully enthusiastic boy

Cấp phát động trong C – Dynamic Memory Allocation

2 min read

cấp phát bộ nhớ động

Cấp phát bộ nhớ động là một khía cạnh quan trọng trong lập trình C, cho phép bạn tạo ra và quản lý các biến có kích thước linh hoạt trong quá trình chạy của chương trình. Trong bài viết này, chúng ta sẽ tìm hiểu về cách cấp phát và giải phóng bộ nhớ động trong ngôn ngữ lập trình C.

1. Sử dụng hàm malloc() để cấp phát bộ nhớ

Trong C, chúng ta sử dụng hàm malloc() để cấp phát bộ nhớ động. Hàm này được định nghĩa trong thư viện stdlib.h. Để sử dụng hàm malloc(), bạn cần chỉ định kích thước của biến mà bạn muốn cấp phát bộ nhớ. Ví dụ:

int* ptr = (int*) malloc(sizeof(int));

Trong ví dụ trên, chúng ta cấp phát một phần tử kiểu int bằng cách sử dụng sizeof(int) để xác định kích thước của kiểu dữ liệu int.

2. Kiểm tra việc cấp phát bộ nhớ

Sau khi cấp phát bộ nhớ bằng hàm malloc(), bạn nên kiểm tra xem việc cấp phát đã thành công hay chưa. Việc kiểm tra này giúp đảm bảo rằng chương trình không gặp lỗi khi thực hiện các thao tác với bộ nhớ. Bạn có thể sử dụng điều kiện if để kiểm tra sự thành công của việc cấp phát bộ nhớ:

if (ptr == NULL) {
    // Quá trình cấp phát bộ nhớ không thành công
    // Xử lý tình huống ngoại lệ tại đây
} else {
    // Quá trình cấp phát bộ nhớ thành công
    // Tiếp tục thực hiện các thao tác với bộ nhớ
}

3. Giải phóng bộ nhớ sau khi sử dụng

Sau khi hoàn thành việc sử dụng bộ nhớ, bạn cần giải phóng bộ nhớ để tránh lãng phí tài nguyên. Để giải phóng bộ nhớ đã được cấp phát bằng hàm malloc(), chúng ta sử dụng hàm free(). Ví dụ:

free(ptr);

Trong ví dụ trên, ptr là con trỏ đến vùng nhớ mà bạn muốn giải phóng.

4. Cấp phát mảng bộ nhớ động

Ngoài việc cấp phát bộ nhớ cho một biến đơn lẻ, chúng ta cũng có thể cấp phát bộ nhớ cho một mảng. Ví dụ:

int* arr = (int*) malloc(n * sizeof(int));

Trong ví dụ trên, chúng ta cấp phát một mảng arr gồm n phần tử kiểu int.

5. Điều chỉnh kích thước bộ nhớ đã cấp phát

Trong một số trường hợp, bạn có thể cần điều chỉnh kích thước của bộ nhớ đã được cấp phát. Để làm điều này, bạn có thể sử dụng hàm realloc(). Ví dụ:

ptr = (int*) realloc(ptr, new_size);

Trong ví dụ trên, ptr là con trỏ đến bộ nhớ cần điều chỉnh kích thước, và new_size là kích thước mới mà bạn muốn cấp phát.

Kết luận

Trên đây là một số kiến thức cơ bản về cấp phát bộ nhớ động trong ngôn ngữ lập trình C. Việc hiểu và áp dụng đúng cách cấp phát và giải phóng bộ nhớ là rất quan trọng để viết các chương trình C hiệu quả và tránh gặp phải các lỗi liên quan đến quản lý bộ nhớ. Hy vọng bài viết này đã giúp bạn có cái nhìn tổng quan về chủ đề này.

References: https://www.geeksforgeeks.org/dynamic-memory-allocation-in-c-using-malloc-calloc-free-and-realloc/

Avatar photo
Duy Nguyen Hoang A fully enthusiastic boy

Leave a Reply

Your email address will not be published. Required fields are marked *