指向数组内部结构的指针

时间:2012-09-08 02:00:49

标签: c pointers struct

我正在尝试将int指针指向一个int数组,该数组是structre的成员。 该结构是另一个结构的成员,恰好是一个结构数组。这个结构数组恰好是另一个结构的成员。最后一个结构碰巧是结构数组的一个元素。

typedef struct s_ptxRowProperties
{
    int lastPlotValue[134];

} ptxRowProperties;

typedef struct s_ptxRow
{   
    ptxRowProperties PtxRowProperties;

} ptxRow;


typedef struct s_workSpace
{   
    ptxRow PtxRow[100];

} workSpace;

编辑: 我分配这些庞然大物中的一个:     WorkSpace [n] =(workSpace *)calloc(1,sizeof(workSpace));

我尝试过以下咒语,但无济于事:

int *x= &(WorkSpace[i]->PtxRow[ptxRowIndex].PtxRowProperties.lastPlotValue)[0];
int *x= (&WorkSpace[i]->PtxRow[ptxRowIndex].PtxRowProperties.lastPlotValue)[0];
int *x= &(WorkSpace[i]->PtxRow[ptxRowIndex].PtxRowProperties->lastPlotValue)[0];
int *x=   WorkSpace[i]->PtxRow[ptxRowIndex].PtxRowProperties.lastPlotValue;
int *x= *(WorkSpace[i]->PtxRow[ptxRowIndex].PtxRowProperties.lastPlotValue);
int *x= (*WorkSpace[i]->PtxRow[ptxRowIndex].PtxRowProperties->lastPlotValue);

我相信在一个房间里假设的百万只猴子将会在他们为此创造正确形式之前组成哈姆雷特。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

你可能想要

int *x= &(WorkSpace[i]->PtxRow[ptxRowIndex].PtxRowProperties.lastPlotValue[0]);

这假设WorkSpace[i]->PtxRow[ptxRowIndex].PtxRowProperties.lastPlotValue[0]将引用int数组的第一个元素。

答案 1 :(得分:0)

如果WorkSpace[i]->PtxRow[ptxRowIndex].PtxRowProperties.lastPlotValue是您感兴趣的值,那么会使用&获取其地址:

int *x = &WorkSpace[i]->PtxRow[ptxRowIndex].PtxRowProperties.lastPlotValue;