length是函数传进来的参数,怎么给一个数组分配大小为length
时间: 2024-09-12 09:16:09 浏览: 30
使一个函数作为另外一个函数的参数来运行的javascript代码
在C语言中,如果你有一个函数并希望接收一个变量`length`作为参数来动态地确定数组大小,你需要使用可变长度数组(VLA,Variable Length Arrays),但这并非标准C语言特性,在C99及以上版本以及一些编译器支持的情况下可用。以下是使用VLA的例子:
```c
#include <stdlib.h> // 引入malloc函数
size_t len; // 声明长度变量
void create_array(size_t size, int* arr) {
arr = (int*) malloc(size * sizeof(int)); // 动态分配内存
if (arr == NULL) {
printf("Memory allocation failed.\n");
return;
}
// 现在arr指向了一个大小为len的数组
}
// 调用函数,并传入具体的length值
void main() {
size_t length = 10;
int* my_array;
create_array(length, my_array);
// 使用my_array...
}
```
注意,由于VLA不是标准C,所以实际项目中更常见的是通过`malloc`或`calloc`预先申请固定大小的内存,然后传递数组的地址。
阅读全文