c語(yǔ)言中malloc的用法是什么

小億
271
2023-09-20 16:52:40

malloc函數(shù)是C語(yǔ)言中動(dòng)態(tài)內(nèi)存分配的函數(shù),用于在堆區(qū)中分配一塊指定大小的內(nèi)存空間,并返回該內(nèi)存空間的首地址。

malloc的用法如下:

  1. 引入stdlib.h頭文件:#include <stdlib.h>

  2. 調(diào)用malloc函數(shù):void* malloc(size_t size)

  • size為要分配的內(nèi)存空間的大小,單位為字節(jié)。

  • 返回值為void類型的指針,指向分配的內(nèi)存空間的首地址。

  • 如果分配失敗,返回NULL。

  1. 使用分配的內(nèi)存空間:通過(guò)返回的指針進(jìn)行訪問(wèn)和操作。

  2. 釋放內(nèi)存空間:使用free函數(shù)進(jìn)行釋放:void free(void* ptr)

  • ptr為要釋放的內(nèi)存空間的首地址。

示例代碼:

#include <stdio.h>
#include <stdlib.h>
int main() {
int* ptr;
// 分配大小為10個(gè)整數(shù)的內(nèi)存空間
ptr = (int*)malloc(10 * sizeof(int));
if (ptr == NULL) {
printf("內(nèi)存分配失敗\n");
return 1;
}
// 使用分配的內(nèi)存空間
for (int i = 0; i < 10; i++) {
ptr[i] = i + 1;
}
// 打印分配的內(nèi)存空間的值
for (int i = 0; i < 10; i++) {
printf("%d ", ptr[i]);
}
printf("\n");
// 釋放內(nèi)存空間
free(ptr);
return 0;
}

此示例代碼中使用malloc函數(shù)分配了大小為10個(gè)整數(shù)的內(nèi)存空間,并將其視為int類型的指針進(jìn)行訪問(wèn)和操作。最后通過(guò)free函數(shù)釋放了分配的內(nèi)存空間。

0