无法创建双精度数组

问题描述 投票:0回答:3

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

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]);
}
c arrays double
3个回答
3
投票

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

int b = 200;

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

此后,您可以像访问数组一样访问 a 。


3
投票

@DoxyLover 是完全正确的,此外,如果您想要使用常量作为数组的大小,您可以使用像

#define kMaxN 200
const int kMaxN = 200
这样的宏用于 C++。

如果你想在函数中分配数组,你可以像这样使用它

int foo(int n) {
  int a[n];
}

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

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

0
投票

我做到了,很简单。你只需制作数组

© www.soinside.com 2019 - 2024. All rights reserved.