c语言如果不知道数组的长度怎么定义数组
时间: 2023-09-16 16:15:53 浏览: 212
在C语言中,如果我们不知道数组的长度,可以使用动态内存分配函数`malloc()`来分配内存空间。`malloc()`函数需要传入一个参数,表示需要分配的内存大小(单位是字节)。分配完成后,它会返回一个指向该内存块首地址的指针,我们可以将这个指针赋给数组名,从而实现动态定义数组。
下面是一个动态定义数组的例子:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n;
printf("请输入数组长度:");
scanf("%d", &n);
int *arr = (int*)malloc(n * sizeof(int)); // 动态分配 n 个 int 类型的内存空间
if (arr == NULL) { // 分配失败,退出程序
printf("内存分配失败!\n");
exit(1);
}
// 给数组元素赋值
for (int i = 0; i < n; i++) {
arr[i] = i + 1;
}
// 打印数组元素
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
// 释放内存
free(arr);
return 0;
}
```
在上面的例子中,我们先通过用户输入获取了数组的长度,然后使用`malloc()`函数分配了相应的内存空间。最后,我们给数组元素赋值并打印出来,最后要记得使用`free()`函数释放内存空间。