Estructura incompleta.

Iniciado por latinoalfredo, 30 Octubre 2012, 23:02 PM

0 Miembros y 1 Visitante están viendo este tema.

latinoalfredo

tengo este codigo que me da porblemas:

typedef struct {
    char cidade[20];
    double datos[365];
    int n_datos;
}T_TEMP;

    struct T_TEMP *espacio;
    espacio=(struct T_TEMP*)malloc(n*sizeof(struct T_TEMP));
    return(*espacio);

cuando quiero asignarle un espcio de memoria a "espacio",el programa me dice "error: invalid application of ���sizeof��� to incomplete type ���struct T_TEMP��� "
alguien me puede decir cual es m fallo.

lapras

Cuando haces typedef estas creando un nuevo tipo entonces no debes poner struct para declara una variable de ese tipo ni hacer un casting a ese tipo.
Es decir, puedes hacer:
typedef struct {
   char cidade[20];
   double datos[365];
   int n_datos;
}T_TEMP;

  T_TEMP *espacio;
   espacio=(T_TEMP*)malloc(n*sizeof(T_TEMP));
   return(*espacio);    //Que sepas que seguramente esto no es lo que realmente quieres hacer pero tampoco lo se si no veo el contexto


Otra manera seria esta:

struct T_TEMP{
   char cidade[20];
   double datos[365];
   int n_datos;
};

   struct T_TEMP *espacio;
   espacio=(struct T_TEMP*)malloc(n*sizeof(struct T_TEMP));
   return(*espacio);