2010-02-19 11 views
11

Il seguente codice restituisce questo: error: expected unqualified-id before ‘for’errore: atteso non qualificato-id, prima ‘per’

non riesco a trovare ciò che causa l'errore. Grazie per l'aiuto!

#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

Non correlato al problema, ma comunque molto importante, si sta utilizzando "nuovo", ma non si chiama mai "cancella", che perde memoria. –

risposta

24

Il ciclo for si trova all'esterno di un corpo di funzione.

3

Non è possibile utilizzare lo strumento for in tale ambito.

+1

Questo non fornisce una risposta alla domanda. Per criticare o richiedere chiarimenti da un autore, lascia un commento sotto il loro post. –

+0

Questo è visibile nella sezione di revisione "post di bassa qualità". Sebbene la risposta sia corretta, è abbastanza breve da invitare probabilmente a cancellare i voti dai revisori che non hanno familiarità con l'area. – Mysticial

+1

@SteveGuidi: risponde alla domanda. Ha detto che non riesce a capire perché sta ricevendo l'errore ed è perché * non puoi usare 'for' a tale scopo *. – dreamlax

5

Ok solo per rendere chiara questa risposta (visto che ho commesso anche l'errore del debuttante).

il ciclo for era esterno int main() insieme a tutto il resto poiché main() si trova da solo vuoto nella parte inferiore del codice.

Ci dispiace più del necessario per alcuni, ma poiché questo problema è più diretto ai neofiti, è necessaria una spiegazione più elaborata.

+0

Tutto il resto * può * sedersi al di fuori di main() se lo si desidera, e molto del resto (come struct e classes) * deve * starsene fuori da main(). Inoltre, ciò implica che 'main()' è l'unica funzione che può contenere variabili. Il problema è che il ciclo for() è al di fuori di * any * function, non main() only. –

Problemi correlati