ciao

Ho questo problema!
Ho scritto questo pezzo di codice all'interno di una classe

studente::studente(char *n,char *c,int m, int v[12])
{
int l;
int k;
strcpy(n,nome);
strcpy(c,cognome);
l = strlen(n)
nome = new char[l]
delete [] nome;
k = strlen(c)
cognome = new char[k];
delete [] cognome;
if((m>=0)&&(m<=300))
matricola=m;
else
cout<<"\nmatricola non valida";
for(int i=0;i<12;i++)
if((v[i]>=0)&&(v[i]<=31))
voti[i]=v[i];
else
cout<<"\nvoto "<<(i+1)<<" non valido";
};

Non so perchè mi dia errore nel pezzo di:

nome = new char[l]

mi dice parse error before `='
E fa così anche per l'altro ovviamente.
Come mai? Non è giusta la sintassi?