怎么用c语言创建一个内部元素个数为变量的数组
时间: 2024-11-06 13:17:10 浏览: 11
在C语言中,动态创建数组(特别是大小未知的情况下)通常通过`malloc()`函数配合指针来完成,因为标准库不支持直接创建大小不确定的数组。这里是一个例子,展示如何根据用户输入的大小动态创建整型数组:
```c
#include <stdio.h>
#include <stdlib.h> // 包含malloc和free函数
#define MAX_SIZE 100 // 可调整的最大数组尺寸,这里是100,可根据需要增大
// 获取用户输入的数组大小
int get_size_from_user() {
int size;
while (scanf("%d", &size) != 1 || size <= 0 || size > MAX_SIZE) { // 验证输入是否合法
printf("请输入正整数(1-%d),再次输入:\n", MAX_SIZE);
clearerr(stdin); // 清除上一次输入的错误标记
}
return size;
}
int main() {
int size = get_size_from_user(); // 获取数组大小
int *array = (int*)malloc(size * sizeof(int)); // 动态分配内存
if (array == NULL) {
printf("内存分配失败!\n");
return 1;
} else {
printf("请输入%d个整数:\n", size);
for (int i = 0; i < size; i++) {
scanf("%d", array + i); // 读取用户输入并存储到数组中
}
// 这里可以添加代码来使用这个数组
// 最后记得释放内存
free(array);
}
return 0;
}
```
在这个程序中,我们首先获取用户的输入作为数组大小,并检查它是否有效。然后使用`malloc()`为用户提供的大小分配内存,将返回的指针转换为`int*`类型。接着让用户输入数组的元素,最后别忘了在不再需要数组时使用`free()`释放内存。
阅读全文