如何在一个维度中创建一个动态数组,而在其他维度中创建静态数组? C

时间:2016-02-17 15:37:15

标签: c arrays multidimensional-array dynamic-arrays

这是我当前的尝试,但是当我尝试将double赋值给一个元素时,我被告知“下标值既不是数组也不是指针也不是向量”。任何人都可以指出我正确的方向(双关语)。

int i;
double x[2];
for(i=0;i<2;i++){
double *x[i];
x[i] = (double*) malloc(10000*sizeof(double));
}

2 个答案:

答案 0 :(得分:2)

创建一个静态指针数组:

int i;
double *x[2];
for(i=0;i<2;i++){
    x[i] = malloc(10000*sizeof(double));
}

然后继续(without casting the result of malloc)。

答案 1 :(得分:0)

写下面的方式

int i;
double *x[2];
for(i=0;i<2;i++){
    x[i] = (double*) malloc(10000*sizeof(double));
}

如果阵列本身具有自动存储持续时间,您甚至可以写。

double *x[2] = { malloc(10000*sizeof(double)), malloc(10000*sizeof(double)) };