在函数中传递Struct指针:期望的声明说明符

时间:2016-11-24 10:12:23

标签: c pointers struct

我有一个声明如下的结构:

typedef struct data
{
        double open;
        double high;
        double low;
        double close;
} ohlcstruct;

如何将指针传递给函数printEOD()

我正在做类似下面的事情:

ohlcstruct * pohlctemp;
pohlctemp = (ohlcstruct *)(long long)GetPfData(sPFName, 1);
printEOD(args, pohlctemp);

我将函数printEOD()声明如下:

void printEOD(void **args, ohlcstruct ** pohlctemp); //Error here

这是一个错误,因为预期的声明说明符

请帮忙!

2 个答案:

答案 0 :(得分:1)

使用printEOD()函数声明,它需要一个指向ohlcstruct指针的指针,你需要调用:

printEOD(args, &pohlctemp);

更简单的printEOD()声明是:

printEOD(void **args, oblcstruct *pohlctemp);

然后将被称为:

printEOD(args, pohlctemp);

答案 1 :(得分:0)

您的功能printEOD()的签名应该是:

void printEOD(void **args,ohlcstruct* pohlctemp); /* pohlctemp should be a single pointer instead of a double pointer */

您只需按照相同的方式调用printEOD():

printEOD(args,pohlctemp);