En principio yo haria esto:
Código C++:
Ver originalvoid copiarExpresion (Expresion exp1, Expresion &exp2){
if (exp1!= NULL){
if (exp2 == NULL){
exp2 = new nodo;
copiarElemento(exp1->info,exp2->info);
exp2->hizq =NULL;
exp2 ->hder=NULL;
}
}else return;
copiarExpresion (exp1->hizq,exp2->hizq);
copiarExpresion (exp1->hder,exp2->hder);
}
Le agregue un else return; a la condicion de que exp1 sea NULL. Ya que si es null va a desreferenciarlo y eso es una violacionde segmento. Y como sabras siempres llegaras a ese caso porque el arbol se acabo.
exp2 deberia ser siempre null, o el arbol puede llegar a existir?? Estas contruyendo uno nuevo o copiandolo a otros??
Saludos