![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problemas con el error: access violation at 0x77d9dede: write of address 0x00090fec
Hola, tengo un problema que hace que mi programa se caiga.
Tengo el siguiente procedimiento Código:
procedure clsHormiga.CamineYClasifique(); var i,NumDeNodo:Integer; Suma:Double; VecDeProbabilidades:VectorIR; begin SetLength(VecDeProbabilidades,3); for i:=1 to R do begin VecDeProbabilidades[i-1]:=1 end; end; e inmediatamente se muestra El problema que no sé a que se debe el error, ya muchas otras veces he trabajado con vectores y nunca me ha pasado algo similar. Si alguien puede ayudarme se los estaría muy agradecido. No tengo la menor idea de porqué o qué hacer. No entiendo los mensajes ni que hacer. Un detalle es que VectorIR=array of Double; Gracias de antemano. Última edición por TecnoBestia fecha: 29-09-2012 a las 22:54:25. Razón: faltó un detalle. |
#2
|
||||
|
||||
¿Y qué es la R del bucle?, ¿cuánto vale?, ¿de dónde saca el valor?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
|||
|
|||
Es una variable global, tiene un valor de 3.
|
#4
|
|||
|
|||
De hecho, el for no importa, lo he quitado y el problema se da al redefinir el tamaño del vector. De hecho, el código dado por:
Código:
procedure clsHormiga.CamineYClasifique(); var i,NumDeNodo:Integer; Suma:Double; VecDeProbabilidades:VectorIR; begin SetLength(VecDeProbabilidades,3); end; Gracias por responder. |
#5
|
||||
|
||||
¿Y por qué usas VecDeProbabilidades en lugar de VectorIR?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#6
|
||||
|
||||
Hola.
Te faltó incluir algo importante. De tu código se podría inferir que VectorIR está declarado como: Pero si fuera así, las líneas: no generarían ningún error... ¿ Que es VectorIR ? Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#7
|
|||
|
|||
Ese es el problema, yo considero que no debería haber ningún problema. La unidad completa es la siguiente:
Es claro que este último porcedure no está completo, el debe hacer varias cosas que he quitado para mostrar el error. Este error se genera cuando redefino el tamaño del vector VecDeProbabilidades, sin embargo, ese mismo trabajo se hace con otros vectores y no se genera el problema. Sin embargo, me sigue lanzando el error, les agradezco que intenten ayudarme. Ya he realizado varios programas en Delphi 7 y esta es la primera vez que me pasa algo así, lo que trataré de hacer es iniciar de cero, reescribiré el código de nuevo esperando que el error no se repita. Gracias de todos modos y saludos... Última edición por TecnoBestia fecha: 30-09-2012 a las 02:46:46. Razón: imcompleto |
#8
|
||||
|
||||
Hola.
Según lo que pude ver de la clase clsHormiga, ya tendrías un error al llamar al método IniciarCG: Tal vez M tome algún valor en el constructor (si existe) o en el método Inicializacion. Pero lamentablemente no puedo verificarlo por que en el código que adjuntaste, falta la definición de este último. Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#9
|
|||
|
|||
![]() Muchísimas gracias. Es claro que le atinaste al error, M corresponde al tamaño de un vector dinámico, y el for que mencionas recorre el vector de modo que si inicia en i:=0 debería terminar en M-1 y no en M. De esta manera estaba guardando un dato extra en una posición de memoria fuera del vector, lo que ocasiona el error. Como el error lo marcaba en otra línea, no me había percatado de lo anterior.
Pero de verdad le agradezco demasiado. Ya estaba a punto de reescribir el código nuevamente a ver si acaso. Saludos... |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ventana de error: Access violation at address 00CA1C10. Read of address 00CA1C10 | HERYCK | Varios | 3 | 06-10-2012 07:35:57 |
Access violation at address 7C92B1FA in module 'ntdll.dll'. Write of address 00000010 | genyus00 | Varios | 1 | 12-02-2011 09:41:20 |
Código de error - Access violation at address 0044p983 in module 'Project1.exe'. | P0werBurn | Varios | 5 | 18-08-2010 18:26:52 |
Error Access violation at address 00404CE8 in module | bothy | Varios | 32 | 20-03-2010 23:32:07 |
error 'Access violation at address 0053CF79 in module project1' | Renees | Varios | 3 | 15-03-2005 17:17:37 |
![]() |
|