malloc函數是C語言中用來動態分配內存空間的函數。它的聲明如下:
void* malloc(size_t size);
該函數接受一個參數size,表示需要分配的內存空間大小(以字節為單位)。函數返回一個指向所分配內存空間起始地址的指針,如果分配失敗則返回NULL。
使用malloc函數的一般步驟如下:
在程序中包含stdlib.h頭文件,以便使用malloc函數。
聲明一個指針變量來存儲分配的內存空間。
使用malloc函數分配內存空間,并將返回的指針賦值給指針變量。
使用分配的內存空間進行操作。
使用完畢后,使用free函數釋放內存空間。
下面是一個使用malloc函數動態分配內存空間并使用的例子:
#include <stdio.h>
#include <stdlib.h>
int main() {
int n;
int *ptr;
printf("請輸入數組大小: ");
scanf("%d", &n);
ptr = (int*)malloc(n * sizeof(int));
if (ptr == NULL) {
printf("內存分配失敗\n");
return 1;
}
for (int i = 0; i < n; i++) {
ptr[i] = i + 1;
}
printf("數組內容: ");
for (int i = 0; i < n; i++) {
printf("%d ", ptr[i]);
}
free(ptr);
return 0;
}
在上述例子中,首先通過scanf函數獲取用戶輸入的數組大小,然后使用malloc函數分配n個int類型變量所占的內存空間,并將返回的指針賦值給ptr變量。接著,使用for循環給分配的內存空間賦值。最后,使用free函數釋放動態分配的內存空間。
需要注意的是,使用malloc函數分配的內存空間在使用完畢后必須使用free函數進行釋放,否則會造成內存泄漏。