Pregunta

Quiero usar alguna estructura básica en C como la siguiente:

struct p {
    int a;
    int b;
    p * next;
}

Sin embargo, falla al compilar con un error: parse error before "p" en la línea con p * next;.

¿Tiene alguna idea de lo que la razón podría ser para este problema?

¿Fue útil?

Solución

C estructuras vivir en un espacio de nombres diferentes y tienen que ser de ámbito de forma explícita, por lo tanto:

struct p {
    int a;
    int b;
    struct p * next;
};

Y no se olvide el punto y coma al final! : -)

Se puede pretender que eres en C ++ por lo tanto: typedef struct p { /*...*/ } p;. Pero creo que next todavía tendrá ser declarado que el anterior.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top