Pascal/Turbo Pascal - problema con punteros

   
Vista:

problema con punteros

Publicado por Miguel (10 intervenciones) el 16/06/2011 13:40:17
hola, escribo porque tengo un problema en una practica que estoy realizando en la universidad, ya que el programa consiste en el manejo de ficheros y memoria dinamica, y da siempre un fallo en el apartado de hacer facturas manuales y automaticas, el fallo es exitcode 216, y no consigo resolverlo

[code

]Procedure busquedaPedido(listacliente:pcliente;var p:Pedido;
var listafactura:pfactura);
begin
while not listavaciaP(listapedido) do
begin
If listapedido^.infopedido.npedido = p.npedido then
begin
listafactura^.infoFactura.cifcliente:=listacliente^.infoc.nif;
listaFactura^.infofactura.impfactura:=Listapedido^.infopedido.imppedido;
end;
listapedido:=listapedido^.sig;
end;
end;

Procedure FacturaManualC(var listafactura:pFactura;listaPedido:pPedido;
listacuota:pCuota;ct:cuota; var f:factura; p:pedido);
var
op:char;

begin
clrscr;
mostrarlistaP(listapedido);
clrscr;
writeln('Introduzca N§ de Pedido: ');
readln(p.npedido);
clrscr;
if busquedaPendiente(listapedido,p) then
begin
Repeat
begin
writeln('________________ Facturas _________________');
busquedapedido(listacliente,p,listafactura);
Writeln('Numero de Facturas: ');
f.nfactura:=numerofactura(listafactura);
Writeln(f.nfactura);
f.cifcliente:=listafactura^.infofactura.cifcliente;
writeln('CIF: ',listafactura^.infofactura.cifcliente);
writeln('Fecha: ');
fechaf(f);
write(f.fecha);
f.impfactura:=Listafactura^.infofactura.impfactura;
writeln('Importe total: ',Listafactura^.infofactura.impfactura);
anhadirFactura(listafactura,f);
listaPedido^.infoPedido.estado:='F';
writeln('Presione [S] para continuar');
readln(op);
end;
until (op='s');
end
else
Writeln('Pedido en estado de anulado o facturado');
crearcuotas(listacliente,listacuota,listafactura,ct);
end;

[/code]

el fallo da en el procedure busquedapedido al principio del if, cuando asigna el valor listafactura^.infoFactura.cifcliente:=listacliente^.infoc.nif;

gracias a todo el que conteste¡¡
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

problema con punteros

Publicado por ramon (2072 intervenciones) el 16/06/2011 20:11:34
El error que marcas es causado por una de estas dos causas
1)produce si se intenta acceder a memoria a la que la aplicación
no es legal que acceda.
2)Derreferenciar punteros nil.

si tuviera todo el programa podría ver la causa del fallo con lo que me mandas no
puedo ver demasiado pero mírate las referencias a nil creo que puedes tener hay
el problema.
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

problema con punteros

Publicado por Miguel (10 intervenciones) el 16/06/2011 21:01:22
he creado otro tema con el nombre programa completo, de manera que puedas visualizar el codigo completo, seria de mucha ayuda que lo pudieses ver, gracias, un saludo.
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