我试图编写一个读取多项式的程序。 我在Visual Studio 10中使用C(在工作中)/ 13(在家中)
代码:
void getPolynomial()
{
int number;//Quantity of the polynomial
number = getInt(1, 10);
//getInt(min, max) Read a number from the user
//and return an int value between min and max
double poly[] = poly[number];
//I try to fix this line.
//It should create an array with as many fields,
//as the user wants to have.
}
给出
错误C2075:' poly' :数组初始化需要大括号
如果我尝试:
double poly[number];
我明白了:
错误C2057:预期的常量表达式
错误C2466:无法分配常量大小为0的数组
错误C2133:' poly' :未知大小
这是解决方案,特别感谢CoolGuy
#include<stdlib.h>
void getPolynomial()
{
int number;
double *poly;
number = getInt(1, 10);
poly = malloc(number * sizeof(*poly));
// use array poly[]
free(poly);
}
答案 0 :(得分:0)
double poly[] = poly[number];
无效C.您必须使用
double poly[number];
如果您的编译器支持C99。上面的行创建了一个VLA(可变长度数组),这是在C99中引入的。 AFAIK,VS 2010不支持C99,但VS 2013支持。
如果这不起作用,则必须使用malloc
/ calloc
动态分配内存:
double *poly;
poly = malloc(number * sizeof(*poly)); //sizeof(*poly)==sizeof(double)
//After poly's use,
free(poly);