Salve a tutti, vi presento il mio problema, che sicuramente sarà una cavolata, ma non riesco a risolverlo :/

Ho una classe Myclass cosi formata:
codice:
class Myclass {
codice:
        public:
        Myclass(int x, inty);
       ~Myclass();
        int x;
        int y;
};


codice:
typedef struct nodo{
Myclass c1;
struct nodo* next;
}nodo;

int main(){
int x=5;
int y=6;
Myclass c2(x,y);
nodo n*=(nodo*)malloc(sizeof(nodo));
n->next=NULL;
n->c1=c2;     //il problema è qui!!!!
return 0;
}

in compilazione non mi da alcun errore, quando però eseguo, il programma smette di funzionare, e ho visto che il problema è in n->c1=c2.
Perchè questa istruzione non dovrebbe funzionare?
Il costruttore di Myclass è corretto, ho fatto delle prove e tutto funziona.
Grazie mille in anticipo per l'aiuto!