FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
redimensionar varias veces un array
Hola amigos del club, por favor si me pueden ayudar con este problema que se presento, tengo lo siguiente, un array dinámico el cual lo dimensiono de la siguiente manera:
Delphi 7 me acusa error de violación de memoria cuando al hacer por segunda vez el
en el array numeros, como se puede hacer para redimensionar varias veces sin que se produzca el error?
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC. |
#2
|
||||
|
||||
Hola Manuel.
Dos detalles, la inicialización de la variable de control y la forma que aumentas el tamaño del arreglo dinámico. Aunque es mas simple: O como en estos casos, que sabemos de antemano que serán 6 elementos, mas simple todavía:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
||||
|
||||
Gracias daniel, en todo caso es un ejemplo que puse solamente, el real es mucho mas complejo, la idea central que la función SetLength no deja ridemensionar varias veces el mismo array con diferentes posiciones por ejemplo:
Una vez gracias Daniel.
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC. |
#4
|
||||
|
||||
Hola Manuel.
Si no te entiendo mal es lógico, por que la segunda asignación del arreglo anula la primera. En tu ejemplo la cantidad de elementos no termina siendo 30 sino 20 ya que la última sentencia fija el tamaño del arreglo en esa cifra. Tal vez con estos ejemplos pueda explicar mejor a que me refiero:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 11-07-2014 a las 15:39:09. Razón: agregar ejemplo |
#5
|
||||
|
||||
Gracias Daniel nuevamente, me he dado cuenta que cuando aumento la cantidad de elementos no hay problemas , pero si cuando se redimensiona a menos elementos se produce el error.
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC. |
#6
|
||||
|
||||
Manuel,
Cita:
Revisa este código: El código anterior en Delphi 7 bajo Windows 7 Professional x32, redimensiona un arreglo de enteros en forma creciente y decreciente y efectúa operaciones sobre sus elementos. Revisa esta información: Espero sea útil Nelson. Última edición por nlsgarcia fecha: 11-07-2014 a las 20:33:20. |
#7
|
||||
|
||||
Cita:
Ademas, para poder determinar que pasa con un error, el que sea, debes volverlo reproducible. No basta con simplemente mostrar codigo, debes mostrar el conjunto de pasos EXACTOS que genera el error, de lo contrario uno puede quedarse una eternidad adivinando estos casos.
__________________
El malabarista. |
#8
|
||||
|
||||
Mil Gracias Daniel por tu ayuda, solucionado el problema después de cada SetLength(arreglo), coloque un Finalize(arreglo) y error se eliminó. Gracias una vez más.
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC. |
#9
|
||||
|
||||
Manuel,
Cita:
Nelson. |
#10
|
||||
|
||||
Que cosa no entiendes?
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC. |
#11
|
||||
|
||||
Manuel,
Cita:
Sería conveniente que publicaras el código en cuestión, en general no es necesario colocar un Finalize después de cada SetLength de un Arreglo Dinámico, como se puede ver en los códigos de los Msg #6 y Msg #7. Cita:
Nelson. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Mi busca si lo hace varias veces | Paulao | Varios | 0 | 05-07-2011 17:15:43 |
llamar varias veces un formulario | Lizette | Varios | 3 | 05-11-2008 16:28:10 |
Imprimir un registro varias veces | Vlady | Impresión | 1 | 29-08-2008 08:04:14 |
error al ejecutar un reporte varias veces | mar65 | Conexión con bases de datos | 3 | 26-01-2005 13:01:28 |
Imprimir algo varias veces. | aoiTo | Impresión | 0 | 20-07-2004 19:12:49 |
|