为什么我没有得到两个结构地址?

时间:2017-11-06 12:24:20

标签: c pointers struct

我的结构如下:

typedef struct {
    int index;
    float value;
    ...
} DAT;

我希望找到具有最小值和最大值的structrue的地址,用于其他目的(这里我简化了结构,因为我在DAT中有其他信息,所以我必须得到整个结构)< / p>

void FindMinMax (DAT *, int, DAT *, DAT *);
void main () {
    DAT *L = NULL;
    DAT *min = NULL, *max = NULL;

    L = (DAT *) malloc(5 * sizeof(DAT));
    FindMinMax(L, 5, min, max);
}

void FindMinMax(DAT *L, int N, DAT *min, DAT *max) {
    int i;

    for (...) {
    ...
    /* for example */
    min = L + 1;
    max = L + 2;
    }
}

为什么我在主函数中没有得到min = L + 1,max = L + 2?

1 个答案:

答案 0 :(得分:1)

我不确定我是否理解你的问题,但你可能想要这个:

void main () {
    DAT *L = NULL;
    DAT *min = NULL, *max = NULL;

    L = malloc(5 * sizeof(DAT));    // cast is not required
    FindMinMax(L, 5, &min, &max);
}

void FindMinMax(DAT *L, int N, DAT **min, DAT **max) {
    int i;

    for (...) {
    ...
    /* for example */
    *min = L + 1;
    *max = L + 2;
    }
}