c语言实现输入一个未知长度的数组
时间: 2023-06-05 09:07:44 浏览: 1533
可以使用动态内存分配函数malloc()来实现。可以先定义一个初始容量比较小的数组,然后通过循环不断读入输入的数据,当数组已满时使用realloc()函数动态扩容,直到全部数据读入完成。以下是C语言示例代码:
```
#include <stdio.h>
#include <stdlib.h>
int main() {
int capacity = 10; // 初始容量为10
int *arr = malloc(capacity * sizeof(int)); // 动态分配数组空间
int size = 0; // 当前数组大小
printf("请输入一些整数(输入-1表示结束):\n");
int num;
while (1) {
scanf("%d", &num);
if (num == -1) {
break;
}
if (size >= capacity) { // 当数组已满时,动态扩容
capacity *= 2;
arr = realloc(arr, capacity * sizeof(int));
}
arr[size++] = num; // 将输入的数放入数组中
}
// 输出数组中的内容
printf("数组中的数为:");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
free(arr); // 释放动态分配的数组空间
return 0;
}
```
阅读全文