apuntaodres en procedimientos
Publicado por Eleazar (25 intervenciones) el 28/10/2004 20:59:07
Tengo mi estructura definida de la siguiente manera :
typedef struct Elemento{ // Estructura del puntero
Elemento *siguiente;
int Valor;
};
en el main tengo lo siguiente :
Elemento Inilista; // Inilista es la cabecera de la cadena (es el indice)
Elemento *actual; // actual indica cual es el ultimo elemento
actual = &Inilista;
y deseo utilizar actual en un procedimiento, con lo que lo llamo asi :
Agrega(contador,actual);
Sin embargo, al compilar me tira los siguientes errores :
- Cannot convert Elemento * to Elemento in function main().
- Type mismatch in parameter 'pila' in call to 'Agregar(int &, Elemento &)' in function main().
el procedimiento que quiero llamar es el siguiente :
void Agrega(int &donde,Elemento &pila)
{
Elemento *ahora; // se crea elemento de trabajo
ahora = &pila;
ahora->siguiente = new Elemento;
printf(" Escriba valor a agregar :");
scanf("%i",&ahora->Valor); // se ingresa el valor
fflush(stdin);
ahora = ahora->siguiente; // se direcciona al nodo siguiente
ahora->siguiente = NULL;
printf(" %i agregado exitosamente en la posicion %i.",ahora->Valor,donde);
donde = donde++;
delete(ahora); //se borra ahora para liberar la memoria
}
Gracias de antemano a los que me puedan ayudar a entender que sucede con esto...
typedef struct Elemento{ // Estructura del puntero
Elemento *siguiente;
int Valor;
};
en el main tengo lo siguiente :
Elemento Inilista; // Inilista es la cabecera de la cadena (es el indice)
Elemento *actual; // actual indica cual es el ultimo elemento
actual = &Inilista;
y deseo utilizar actual en un procedimiento, con lo que lo llamo asi :
Agrega(contador,actual);
Sin embargo, al compilar me tira los siguientes errores :
- Cannot convert Elemento * to Elemento in function main().
- Type mismatch in parameter 'pila' in call to 'Agregar(int &, Elemento &)' in function main().
el procedimiento que quiero llamar es el siguiente :
void Agrega(int &donde,Elemento &pila)
{
Elemento *ahora; // se crea elemento de trabajo
ahora = &pila;
ahora->siguiente = new Elemento;
printf(" Escriba valor a agregar :");
scanf("%i",&ahora->Valor); // se ingresa el valor
fflush(stdin);
ahora = ahora->siguiente; // se direcciona al nodo siguiente
ahora->siguiente = NULL;
printf(" %i agregado exitosamente en la posicion %i.",ahora->Valor,donde);
donde = donde++;
delete(ahora); //se borra ahora para liberar la memoria
}
Gracias de antemano a los que me puedan ayudar a entender que sucede con esto...
Valora esta pregunta


0