在C語言中,動態內存分配是一種在程序運行時根據需要分配內存的方法
malloc()
函數分配內存:#include <stdio.h>
#include <stdlib.h>
int main() {
int *ptr; // 聲明一個整數指針
int n = 10; // 要分配的內存大小
ptr = (int *)malloc(n * sizeof(int)); // 使用malloc()分配內存
if (ptr == NULL) { // 檢查內存分配是否成功
printf("內存分配失敗!\n");
return 1;
}
// 使用指針操作動態分配的內存
for (int i = 0; i < n; i++) {
ptr[i] = i * 2;
printf("ptr[%d] = %d\n", i, ptr[i]);
}
free(ptr); // 釋放動態分配的內存
return 0;
}
calloc()
函數分配內存:#include <stdio.h>
#include <stdlib.h>
int main() {
int *ptr; // 聲明一個整數指針
int n = 10; // 要分配的內存大小
ptr = (int *)calloc(n, sizeof(int)); // 使用calloc()分配內存并初始化為0
if (ptr == NULL) { // 檢查內存分配是否成功
printf("內存分配失敗!\n");
return 1;
}
// 使用指針操作動態分配的內存
for (int i = 0; i < n; i++) {
ptr[i] = i * 2;
printf("ptr[%d] = %d\n", i, ptr[i]);
}
free(ptr); // 釋放動態分配的內存
return 0;
}
在這兩個示例中,我們使用malloc()
和calloc()
函數分別為整數數組分配了動態內存。注意,在使用指針操作動態分配的內存之后,我們需要使用free()
函數釋放內存,以避免內存泄漏。