C中结构内部的结构

时间:2014-12-27 18:55:27

标签: c struct

typedef char tCadena[TCAD];
typedef struct{
    int i; 
    int f;
    tCadena cola[TCOL];
}tCola;
typedef struct{
    tCadena nombre[TCAD];
    int numfich;
    tCola cola;
}tImpresora;
typedef struct{
    tImpresora impresora;
    int ocupado;
}tElementoImpresora;
typedef tElementoImpresora tablaImp[MAXIMP];

所以我有这些结构,我有一个名为thing的变量tablaImp 我想进入结构体并将第一个结构的i设置为0。 我尝试过:

tablaImp thing;
thing.impresora.cola.i=0;

但它告诉我它不是结构的一部分。 如何进入第一个结构?谢谢。

3 个答案:

答案 0 :(得分:5)

tablaImp是一个数组,您需要将其编入索引。

for (i = 0; i < MAXIMP; i++) {
    thing[i].impresora.cola.i = 0;
}

答案 1 :(得分:1)

thing是一个数组(结构),你试图像使用结构一样使用它:

typedef tElementoImpresora tablaImp[MAXIMP];
tablaImp thing;
thing.impresora.cola.i=0;
/*   ↑ need an array index here */

答案 2 :(得分:0)

typedef tElementoImpresora tablaImp[MAXIMP];
tablaImp thing;
thing.impresora.cola.i=0;

thing是一个数组,您需要指定数组元素:

thing[0].impresora.cola.i = 0