在C语言中,我们可以使用malloc
和realloc
函数来实现数组的动态分配。首先,需要包含stdlib.h
头文件来使用这些函数。下面是一个示例程序,演示了如何使用scanf
和malloc
实现数组的动态分配:
#include<stdio.h>
#include <stdlib.h>
int main() {
int n, i;
int *arr;
printf("请输入数组长度: ");
scanf("%d", &n);
// 使用 malloc 为数组分配内存
arr = (int *)malloc(n * sizeof(int));
if (arr == NULL) {
printf("内存分配失败!\n");
exit(0);
}
// 使用 scanf 读取数组元素
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]);
}
printf("\n");
// 释放内存
free(arr);
return 0;
}
在这个示例中,我们首先使用scanf
读取数组的长度n
,然后使用malloc
为数组分配内存。接下来,我们使用scanf
读取数组的每个元素,并将其存储在分配的内存中。最后,我们打印数组的元素并释放内存。