c 语言数组存入未知个数
时间: 2024-10-24 08:14:19 浏览: 17
C语言中,如果需要存储未知数量的数据,通常可以使用动态内存分配,其中最常见的是通过`malloc()`函数来处理。对于数组,可以创建一个指针并使用`malloc()`分配足够大的内存空间,然后按照需要添加元素,每个元素的地址可以用这个指针加上偏移量得到。
例如:
```c
#include <stdlib.h>
int* dynamicArray; // 定义一个指向整数的指针
size_t count = 0; // 记录当前元素的数量
// 动态分配内存
dynamicArray = (int*) malloc(count * sizeof(int)); // 初始时分配零个元素的空间
// 添加元素
void addElement(int value) {
if (count == sizeof(int) / sizeof(*dynamicArray)) { // 检查是否已满
size_t newCapacity = count + 10; // 扩容策略,这里假设每次增加10个元素
dynamicArray = (int*) realloc(dynamicArray, newCapacity * sizeof(int)); // 再次分配更大的内存
}
dynamicArray[count++] = value; // 添加元素并更新计数
}
// 使用数组
addElement(1);
addElement(2);
// ...
// 清理内存
free(dynamicArray); // 释放不再需要的内存
```
请注意,动态内存管理需要谨慎对待,特别是在程序结束前一定要记得释放所占内存,避免内存泄漏。此外,由于动态数组的大小不是固定不变的,所以在遍历或操作数组时,也应考虑到可能的边界情况。
阅读全文