无法创建双打数组

时间:2013-03-04 02:15:28

标签: c arrays double

我正在尝试创建一个双打数组,我知道我可以这样做,

double a[200];

但为什么我不能创建这样的?

int b = 200;

double a[b];

它不起作用。

任何人都可以帮助我吗?

更新:

int count;
count = 0
while (fgets(line,1024,data_file) != NULL)
{
    count++;
}

double *x = (double *)malloc(count * sizeof (double));

double xcount = 1.0;

for (int i = 0; i < count; i++)
{
    x[i] = xcount/f;
    xcount = xcount + 1.0;
    printf("%lf\n", x[i]);
}

2 个答案:

答案 0 :(得分:3)

@ DoxyLover是完全正确的,另外如果你想要的是使用一个常数作为数组的大小,你可以使用像#define kMaxN 200const int kMaxN = 200这样的马克用于C ++。

如果要在函数中分配数组,可以像

一样使用它
int foo(int n) {
  int a[n];
}

或者如果要将多维数组作为参数传递,可以使用

int foo(int n, int arr[][n]) {
...
}

答案 1 :(得分:2)

C不支持动态数组大小。你必须动态分配内存并使用指针。

int b = 200;

double *a;
a = malloc(b * sizeof (double));

在此之后,您可以像访问数组一样访问它。