阅读量:3
在C语言中,可以通过以下几种方式输入不定长度的数组:
- 动态内存分配:使用
malloc()
函数动态分配内存空间。首先需要确定数组的最大长度,然后根据实际需要使用malloc()
函数分配相应的内存空间,最后通过循环结构从键盘读取输入的数据并存储在数组中。
示例代码:
#include <stdio.h> #include <stdlib.h> int main() { int* array; // 声明指针变量 int length, i; printf("请输入数组长度:"); scanf("%d", &length); // 动态分配内存空间 array = (int*)malloc(length * sizeof(int)); if (array == NULL) { printf("内存分配失败!"); return 0; } printf("请输入数组元素:"); for (i = 0; i < length; i++) { scanf("%d", &array[i]); } printf("你输入的数组是:"); for (i = 0; i < length; i++) { printf("%d ", array[i]); } free(array); // 释放内存空间 return 0; }
- 使用可变长度数组(Variable Length Array,VLA):在C99标准及以后的版本中,可以使用可变长度数组来声明不定长度的数组。在声明数组时,可以使用变量作为数组长度。
示例代码:
#include <stdio.h> int main() { int length, i; printf("请输入数组长度:"); scanf("%d", &length); int array[length]; // 声明可变长度数组 printf("请输入数组元素:"); for (i = 0; i < length; i++) { scanf("%d", &array[i]); } printf("你输入的数组是:"); for (i = 0; i < length; i++) { printf("%d ", array[i]); } return 0; }
注意:使用可变长度数组时,需要确保数组长度在运行时是合法的。