在C语言中,要声明一个运行时数组的大小,需要使用动态内存分配。这意味着在程序运行时,您可以根据需要分配和释放内存。以下是如何在C语言中声明运行时数组大小的方法:
malloc
函数分配内存:#include<stdio.h>
#include <stdlib.h>
int main() {
int n, i;
printf("请输入数组大小:");
scanf("%d", &n);
int* arr = (int*) malloc(n * sizeof(int));
if (arr == NULL) {
printf("内存分配失败!");
exit(0);
}
printf("请输入%d个整数:\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
printf("输入的整数为:\n");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
free(arr);
return 0;
}
calloc
函数分配内存:#include<stdio.h>
#include <stdlib.h>
int main() {
int n, i;
printf("请输入数组大小:");
scanf("%d", &n);
int* arr = (int*) calloc(n, sizeof(int));
if (arr == NULL) {
printf("内存分配失败!");
exit(0);
}
printf("请输入%d个整数:\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
printf("输入的整数为:\n");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
free(arr);
return 0;
}
在这两个示例中,我们使用malloc
和calloc
函数分配了一个整数数组。malloc
函数为数组分配内存,calloc
函数为数组分配内存并将其初始化为零。
请注意,在使用动态内存分配时,一定要在程序结束时使用free
函数释放内存,以避免内存泄漏。
领取专属 10元无门槛券
手把手带您无忧上云