c - 为什么我无法获取两个结构体地址?

标签 c pointers struct

我的结构如下:

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

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

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

为什么我在 main 函数中无法得到 min = L + 1, max = L + 2?

最佳答案

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

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

关于c - 为什么我无法获取两个结构体地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47137002/

相关文章:

c - C 中的 SMPL preempt()

java - C,打开相对于可执行文件路径的文件?

c - C 中的消息框 Hook 问题

c++ - 在其构造函数中将对象的指针传递给另一个类

c - char ptr 的值在++ 递增后不会改变

c - 在运行时永久转换 void 指针

c - 通过函数 : FILE* or FILE**? 的 FILE* 数组

c - 覆盖 C 中的结构数组

struct - 如何循环查询数据并插入结构?

arrays - 在 D 中初始化结构成员数组