C malloc意思

malloc 是一個C語言的庫函式,它是C標準庫的一部分,通常在stdlib.h頭檔案中聲明。malloc函式用於動態分配記憶體,即在程式運行時請求作業系統分配記憶體。

malloc函式的原型通常如下所示:

void *malloc(size_t size);

在這個原型中:

malloc函式的工作原理是:

  1. 檢查系統是否有足夠的可用記憶體來滿足請求的大小。
  2. 如果記憶體可用,malloc會從作業系統的記憶體池中分配一塊大小為size位元組的記憶體。
  3. 返回一個指向這塊記憶體的指針。

使用malloc函式時,需要先聲明一個指針,然後使用malloc為這個指針分配記憶體。例如:

#include <stdlib.h>
#include <stdio.h>

int main() {
    // 聲明一個指針,它將指向一個int類型的變數
    int *ptr;

    // 使用malloc為ptr分配10個int類型的變數的記憶體
    ptr = malloc(10 * sizeof(int));

    // 如果malloc成功分配了記憶體,ptr現在指向這塊記憶體
    if (ptr != NULL) {
        // 使用ptr訪問這塊記憶體
        for (int i = 0; i < 10; i++) {
            // 假設你想要在這塊記憶體中存儲一些值
            ptr[i] = i * i;
        }
    } else {
        // 如果malloc無法分配記憶體,ptr為NULL
        printf("malloc failed to allocate memory\n");
        return 1;
    }

    // 使用完記憶體後,需要釋放這塊記憶體,以防止記憶體洩漏
    free(ptr);

    return 0;
}

需要注意的是,在使用malloc分配的記憶體後,必須在使用完記憶體後使用free函式釋放這塊記憶體,以防止記憶體洩漏。如果不釋放記憶體,可能會導致程式崩潰或出現未定義的行為。