读取一个未知长度的数组
时间: 2024-10-02 14:00:53 浏览: 27
易语言-保存和读取整数型数组
在C语言中,读取一个未知长度的数组通常涉及到动态内存分配和指针操作。由于数组长度未知,我们不能预先声明数组的大小。你可以使用`malloc`函数动态地为数组分配内存,然后根据用户的输入或某种条件来决定数组的实际大小。
以下是一个简单的示例,展示了如何读取用户输入的元素,直到用户输入特定结束字符(如'\0'):
```c
#include <stdio.h>
#include <stdlib.h> // 包含 malloc 和 free 函数
#define MAX_SIZE 100 // 设置最大数组大小,可以根据需求调整
int main() {
char *array; // 动态分配的数组指针
int i = 0, input;
// 分配内存并检查是否成功
array = (char*)malloc(MAX_SIZE * sizeof(char));
if (array == NULL) {
printf("Memory allocation failed.\n");
return 1;
}
printf("Enter elements one by one, type 'EOF' to finish: ");
// 循环读取输入,直到遇到 EOF 或达到最大数组大小
while ((input = getchar()) != EOF && i < MAX_SIZE - 1) {
array[i] = input; // 将字符存储到数组中
i++;
}
array[i] = '\0'; // 添加终止符,表示数组结束
// 打印数组
for (i = 0; i <= i; i++) { // 注意边界检查,防止越界访问
printf("%c ", array[i]);
}
printf("\n");
// 释放动态分配的内存
free(array);
return 0;
}
```
在这个例子中,用户可以通过按`Ctrl+D`(在Unix/Linux)或`Ctrl+Z`(在Windows)发送EOF信号来结束输入。当输入结束后,程序会打印数组的内容并释放内存。
阅读全文