Enums inside of Structs,compile error

Iniciado por aurquiel, 25 Julio 2018, 21:34 PM

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

aurquiel

Hola estoy intentando correr este codigo pero el compilador me arroja

||=== Build: Debug in test4 (compiler: GNU GCC Compiler) ===|
13|error: invalid type argument of '->' (have 'unsigned int')|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|


Aqui el codigo, si me podrian ayudar el por que de este error.

#include <stdio.h>
#include <stdlib.h>

typedef struct errorStruct{
     enum ErrorCompile { sintax, declaration } ErrorCompile;
     enum ErrorDriver { connection, power } ErrorDriver;
}ErrorStruct;

int main()
{
    ErrorStruct *myErrorStruct = calloc(sizeof(ErrorStruct),1);

    printf("Error %d\n",myErrorStruct->ErrorCompile->declaration);

return 0;
}

MAFUS

No puedes definir enums dentro de una estructura, debes hacerlo fuera. Las estructuras son variables reunidas de forma lógica, por tanto no tiene sentido crear ese tipo de dato dentro. Lo que puedes hacer es sacarlos fuera y crear sus variables dentro del struct.