2010-02-19 19 views
11

El código siguiente devuelve esto: error: expected unqualified-id before ‘for’de error: se esperaba sin reservas-id antes ‘para’

no puedo encontrar lo que está causando el error. ¡Gracias por la ayuda!

#include<iostream> 

using namespace std; 

const int num_months = 12; 

struct month { 
    string name; 
    int n_days; 
}; 

month *months = new month [num_months]; 

string m[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", 
       "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; 
int n[] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; 

for (int i=0; i<num_months; i++) { 
    // will initialize the months 
} 

int main() { 
    // will print name[i]: days[i] 
    return 0; 
} 
+1

No relacionado con su problema, pero sigue siendo muy importante, es que está utilizando "nuevo", pero nunca está llamando "eliminar", que pierde memoria. –

Respuesta

24

El lazo for está fuera del cuerpo de una función.

3

No se puede usar for en ese ámbito.

+1

Esto no proporciona una respuesta a la pregunta. Para criticar o solicitar aclaraciones de un autor, deje un comentario debajo de su publicación. –

+0

Esto aparece en la sección de revisión de "mensajes de baja calidad". Aunque la respuesta es correcta, es lo suficientemente breve como para invitar a eliminar los votos de los revisores que no están familiarizados con el área. – Mysticial

+1

@SteveGuidi: Responde la pregunta. Dijo que no puede entender por qué está recibiendo el error y es porque * no puedes usar 'for' en ese alcance *. – dreamlax

5

Ok solo para aclarar esta respuesta (ya que cometí el error de novato también).

el bucle estaba fuera int main() junto con todo lo demás desde main() se encuentra por sí mismo vacío en la parte inferior del código.

Lo sentimos, más que necesario decirlo para algunos, pero como este problema está más dirigido a los novatos, se necesita una explicación más elaborada.

+0

Todo lo demás * puede * sentarse fuera de main() si lo desea, y gran parte del resto (como estructuras y clases) * tiene que * sentarse fuera de main(). Además, esto implica que 'main()' es la única función que puede contener variables. El problema es que el bucle for() está fuera de la función * any *, no solo de main(). –

Cuestiones relacionadas