c语言如何将一串未知个数的数据输入数组
时间: 2025-01-05 15:39:00 浏览: 25
在C语言中,如果你需要处理不确定数量的数据并将其存储在一个数组中,可以使用动态内存分配函数如malloc()
。这里有一个基本步骤:
- 首先,你需要确定一个能容纳最大数据量的最大容量。例如,你可以让用户指定数据的数量,然后乘以单个元素的大小。
int max_count;
scanf("%d", &max_count); // 假设用户输入的是整数
// 确定数组大小
size_t array_size = max_count * sizeof(data_type);
这里的data_type
是你打算存储的数据类型。
- 使用
malloc()
为数组分配内存。如果malloc()
成功,它会返回指向新分配内存的指针;失败则返回NULL
。
data_type* arr = (data_type*) malloc(array_size);
if (arr == NULL) {
printf("Memory allocation failed.\n");
return; // 或者处理错误情况
}
- 接下来,循环读取用户的输入,并将每个值存入数组。由于我们不知道具体有多少数据,通常使用
while
循环直到遇到特定的结束标记(例如'\0'字符表示字符串结束)。
for (size_t i = 0; i < max_count && scanf("%s", arr + i) == 1; ++i) { // 注意对字符串类型的输入使用%[^\n]或类似
// 更复杂的数据类型可能需要转换或解析
}
- 最后别忘了在完成所有操作后释放动态分配的内存。
free(arr);
相关推荐


















