Pascal/Turbo Pascal - Problema runtime 216

   
Vista:

Problema runtime 216

Publicado por Julio  (3 intervenciones) el 22/07/2009 02:36:40
Hola, quiero incorporar un nodo al final de una lista, (ya creada):

WHILE aux1^.sig<>nil DO
BEGIN
aux1:=aux1^.sig;
END;
new(aux1^.sig); {en esta instrucción me da un runtime 216}

Agradecería saber porqué y como lo puedo hacer de otra forma, gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema runtime 216

Publicado por Diego Romero (997 intervenciones) el 22/07/2009 03:28:04
No puedes hacer un new() a "nil". Es bastante evidente en el código que has puesto. La condición de salida del while es que aux^.sig sea igual a "nil" y a ese valor le intentas hacer un new().

Creo que lo que quieres hacer es esto:

new(nuevo);
WHILE aux1^.sig<>nil DO
BEGIN
aux1:=aux1^.sig;
END;
Aux1^.sig:=nuevo;

Primero creas un nodo, luego recorres la lista hasta el final y haces que el último nodo apunte al nuevo nodo previamente creado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema runtime 216

Publicado por Julio  (3 intervenciones) el 22/07/2009 11:30:35
Hola de nuevo, al hacer :"WHILE aux1^.sig<>nil DO" y no "WHILE aux1<>nil DO" el new(aux1^.sig) no se asigna a nil , si no a continuación del último nodo de la lista.
No obstante he estado mirando y parece que tengo un problema mayor, pues cualquier instrucción new me da como resultado un runtime 216, la verdad es un expediente x.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar