C语言通过Scanf输入不定长的数组
时间: 2023-10-16 12:10:47 浏览: 347
在C语言中,可以通过动态内存分配来实现输入不定长的数组。具体的步骤如下:
1. 首先,需要引入头文件`stdlib.h`以使用动态内存分配函数。
2. 然后,使用`malloc()`函数分配一块内存来存储数组。
3. 接下来,使用`scanf()`函数获取用户输入的数组元素,并将其存储到刚分配的内存中。
4. 如果需要继续输入数组元素,则可以通过循环来实现。
5. 最后,记得使用`free()`函数释放动态分配的内存。
下面是一个示例代码,演示如何通过`scanf()`输入不定长的数组:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int* arr; // 定义指向整型的指针
int size, i;
printf("请输入数组的大小:");
scanf("%d", &size);
// 动态分配内存
arr = (int*)malloc(size * sizeof(int));
printf("请输入数组元素:\n");
for (i = 0; i < size; i++) {
scanf("%d", &arr[i]);
}
printf("输入的数组元素为:\n");
for (i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
// 释放动态分配的内存
free(arr);
return 0;
}
```
在上述代码中,我们首先使用`malloc()`函数动态分配了一个大小为`size`的整型数组。然后,通过循环使用`scanf()`函数逐个输入数组元素。最后,输出输入的数组元素,并使用`free()`函数释放动态分配的内存。
请注意,在使用动态内存分配后,务必记得在不需要使用数组时释放内存,以避免内存泄漏的问题。
阅读全文