c语言如何输入动态数组
时间: 2024-10-21 16:12:43 浏览: 23
在C语言中,由于动态数组的内存是在运行时动态分配的,不能像声明固定大小数组那样直接使用内置的`scanf()`或`getchar()`等函数逐个输入元素。你需要编写循环结构手动读取用户的输入,并将它们存储到动态数组中。以下是一个基本的例子,假设我们有一个整型动态数组:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_LENGTH 10 // 预设最大数组长度
int main() {
int* dynamicArray = NULL;
int length = 0;
int element;
// 动态分配内存并询问用户输入
do {
printf("请输入一个整数(输入-1结束输入): ");
scanf("%d", &element);
// 检查输入是否合法(非负数且未达到最大长度)
if (element != -1 && length < MAX_LENGTH) {
dynamicArray = realloc(dynamicArray, sizeof(int) * (length + 1)); // 扩展数组
dynamicArray[length++] = element;
} else {
break;
}
} while (true); // 循环直到用户输入-1
// 用户输入结束后,处理数组(如打印或后续操作)
for (int i = 0; i < length; i++) {
printf("动态数组元素 %d: %d\n", i, dynamicArray[i]);
}
// 释放内存
free(dynamicArray);
return 0;
}
```
在这个例子中,`realloc()`函数用于调整数组的大小,当用户输入停止时,程序会遍历输入的元素并将它们存入动态数组。
阅读全文