函数参数传递指针乱

时间:2013-06-28 18:43:24

标签: c pointers struct

我需要将此数据传递给函数,但无法确定接收函数的正确语法。

示例代码

NPOI_SCAN_HEADER *h;

int iBline;
int baselineId;
for (iBline = 0; iBline < h->iNumBlines; iBline++)
{
    baselineId = addBaseline(h->pBase[iBline]);
}

int addBaseline(BASELINE *b)
{
    ...
}

“NPOI_SCAN_HEADER”是一个包含“BASELINE * pBase”的结构。

“BASELINE”是一个结构,其中包含addBaseline()所需的数据。

1 个答案:

答案 0 :(得分:3)

由于pBaseBASELINE *pBase[iBline]将是BASELINE。因此,要获得BASELINE *,您需要获取其地址:

baselineId=addBaseline(&(h->pBase[iBline]));

或者只是添加偏移量:

baselineId=addBaseline(h->pBase + iBline);