C语言输入决定数组长度
时间: 2024-02-28 12:25:56 浏览: 19
在C语言中,数组的长度通常在定义时就要确定。但是,你可以通过动态内存分配来在运行时确定数组的长度。例如,可以使用malloc函数从堆中分配一块内存,并将其分配给一个指向数组的指针。然后,可以使用指针来访问和操作数组元素。下面是一个示例:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n;
printf("Enter the length of the array: ");
scanf("%d", &n);
int* arr = (int*)malloc(n * sizeof(int)); // 动态分配内存
// 初始化数组
for (int i = 0; i < n; i++) {
arr[i] = i + 1;
}
// 输出数组
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// 释放内存
free(arr);
return 0;
}
```
在上面的示例中,用户输入了数组的长度,然后使用malloc函数动态分配了一块内存,并将其分配给一个指向数组的指针。然后,通过循环遍历数组,对其进行初始化和输出。最后,使用free函数释放了分配的内存。
相关问题
c语言输入数组并求数组长度
以下是两种C语言输入数组并求数组长度的方法:
1.使用sizeof()函数获取数组长度
```c
#include <stdio.h>
int main() {
int nums[5];
int len = sizeof(nums) / sizeof(nums[0]);
printf("数组长度为:%d", len);
return 0;
}
```
输出结果为:数组长度为:5
2.使用strlen()函数获取字符数组长度
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[20];
printf("请输入一个字符串:");
scanf("%s", str);
int len = strlen(str);
printf("字符串长度为:%d", len);
return 0;
}
```
输出结果为:字符串长度为:输入字符串的长度
c语言输入数组不设定数组长度
在C语言中,我们可以使用动态内存分配的方式来输入数组而不设定数组长度。具体实现方法如下:
1. 使用指针变量动态分配内存空间,例如:int *a = (int*)malloc(sizeof(int)*n),其中n为需要输入的数组长度。
2. 使用循环结构输入数组元素,例如:for(int i=0;i<n;i++){scanf("%d",&a[i]);}。
3. 使用完数组后,需要释放动态分配的内存空间,例如:free(a)。
另外,还可以使用realloc()函数来重新分配内存空间,实现动态输入数组的功能。