【问题标题】:How do I create an array, dynamic in one dimension yet static in others? C如何创建一个数组,在一维中是动态的,而在其他维中是静态的? C
【发布时间】:2016-05-29 10:03:16
【问题描述】:

这是我当前的尝试,但是当我尝试将双精度分配给一个元素时,我被告知“下标值既不是数组也不是指针也不是向量”。谁能指出我正确的方向(双关语)。

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

【问题讨论】:

  • 兄弟你是否缩进

标签: c arrays multidimensional-array dynamic-arrays


【解决方案1】:

如下写法

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)) };

【讨论】:

    【解决方案2】:

    制作一个静态指针数组:

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

    照原样继续 (without casting the result of malloc)。

    【讨论】:

    • 这比预期的要容易,谢谢。
    猜你喜欢
    • 2012-04-11
    • 2020-07-25
    • 2012-03-16
    • 1970-01-01
    • 1970-01-01
    • 2018-02-26
    • 2020-05-20
    • 2018-05-19
    • 1970-01-01
    相关资源
    最近更新 更多