如何使用函数的参数在函数内声明一个数组?
我的代码是:
double function_2(int a)
{
int t[a];
}
Run Code Online (Sandbox Code Playgroud)
发生错误:
Expression must have a constant value.
Run Code Online (Sandbox Code Playgroud)
您的代码是完全有效的C代码.
您正在使用VLA(可变长度数组).这是一个c99功能,您必须确保您的编译器支持c99代码.
如果您使用gcc,默认gcc设置-std=gnu89为C89 + GNU扩展.使用-std=c99或-std=gnu99与gcc编译程序.
如果您使用的是MSVC,遗憾的是它不支持c99,因此您无法在此编译器中使用c99功能.
编辑:
如果编译器不支持VLA,则可以使用动态内存分配:
#include <stdlib.h>
double function_2(int a)
{
// Allocate array object
int *t = malloc(a * sizeof *t);
if (!t) {
// Handle malloc errors
}
// Write your program here: ...
// Free array object
free(t);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
393 次 |
| 最近记录: |