c语言输入不定长度的数组
时间: 2023-10-21 22:02:40 浏览: 299
不定长数组输入C语言版
4星 · 用户满意度95%
在C语言中,可以通过动态内存分配的方式来输入不定长度的数组。
首先,需要使用`malloc`函数分配一块内存来存储数组的元素。`malloc`函数需要给定要分配的内存大小,可以根据用户的输入动态确定。
例如,可以使用`scanf`函数获取用户输入的数组长度。假设用户输入的长度为`n`,则可以使用以下方式动态分配内存:
```
int n;
printf("请输入数组的长度:");
scanf("%d", &n);
int *arr = (int *)malloc(n * sizeof(int));
```
上述代码中,`n * sizeof(int)`是要分配的内存的大小。`malloc`函数会返回一个指向分配内存首地址的指针,这里使用一个指针`arr`来保存这个地址。
然后,可以使用`scanf`函数逐个输入数组的元素。
```
printf("请输入数组的元素:");
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
```
上述代码中,通过循环逐个输入数组元素,并将输入值保存到分配的内存中。
最后,使用完数组后,需要调用`free`函数释放之前动态分配的内存,避免内存泄漏。
```
free(arr);
```
通过以上方法,就可以实现输入不定长度的数组。需要注意的是,在动态分配内存后,使用完毕后要记得及时释放内存。同时,为了代码的健壮性,还需要对用户输入的长度进行合法性判断,确保分配的内存不会过大导致内存不足。
阅读全文