![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#3
|
||||
|
||||
|
Hola Coso, ante todo, muchas gracias por dedicar tu tiempo......
Cita:
Explico el motivo: Justo antes del bucle FOR, lo primero que hago es liberar el objeto TDictionary ( Columna[index] ). Con lo que el nuevo Create, no debería dejar un objeto sin liberar (un Memory Leak). Cada elemento del Array, en su forma Columna[x] referencia a cada uno de los objetos-lista genericos: TDictionary<>. Según creo, la creación de una columna, pasando otra como parámetro debería hacer lo siguiente (en teoría): 1.- Crear una columna nueva (un nuevo objeto TDictionary, sin valores). 2.- Copiar los valores de la columna x+1 (un TDictionary) a la nueva columna x. Y digo copiar, no referenciar al otro objeto TDictionary. Cita:
Siempre en teoria, claro. :-) Con el código que indicas, creo que sucedería lo siguiente. Partiendo de esta situación hipotética de ejemplo: Columna[0] = TDictionary con Pointer: 1000. Columna[1] = TDictionary con Pointer: 1001. Columna[2] = TDictionary con Pointer: 1002. Siguiendo el bucle que expones y suponiendo que borramos la número 0, quedaría así: Columna[0] = 1001 Columna[1] = 1002 Y liberamos el objeto que apunta a 1002 (la Columna[2]), con lo que yo creo que tenemos: 1.- Un memory leak para el objeto que estaba en 1000 (pues no se ha liberado). 2.- Un invalid Pointer en cuanto queramos acceder a Columna[1], pues el objeto que estaba en 1002, ha sido liberado. Pero claro.... todo esto, insisto, es lo que yo creo. Muchas gracias Coso.... :-) Última edición por yapt fecha: 16-01-2011 a las 20:34:11. Razón: Clarificación. |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Invalid Pointer Operation | FerCastro | Varios | 3 | 23-02-2010 21:47:26 |
| Invalid Pointer operation Dll | mcarazas | Varios | 2 | 15-10-2008 21:45:14 |
| Invalid Pointer operation Dll | mcarazas | Varios | 0 | 15-10-2008 16:42:23 |
| invalid pointer operation | muppett | Varios | 1 | 05-03-2008 00:17:55 |
| QR - Invalid Pointer Operation | alapaco | OOP | 6 | 07-06-2006 22:43:31 |
|