FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
||||
|
||||
Punteros a ARRAY
Bueno gente, necesito vuestro consejo. Aquí hablo del lenguaje C, pero no os asustéis porque la pregunta no va por ahí.
Tengo una librería DLL escrita en C que tiene varias funciones que utilizan o devuelven una lista (ARRAY). C utiliza punteros para estos casos, así que hice algo como: Esto compila y funciona perfectamente con Free Pascal, pero me han dicho que falla en Delphi. Así que lo cambié por esto, pensando que iba a funcionar: Esto compila en Free Pascal pero me da un error 216 en tiempo de ejecución. Sin embargo, el siguiente código parece funcionar en ambos entornos: Pero esto no me interesa porque la lista puede tener tamaños muy variados y no es conveniente ponerle un tamaño predeterminado. Lo que estoy pensando es utilizar dos definiciones distintas, una para Delphi y otra para Free Pascal. Para este último lo tengo claro, pero para Delphi no ¿Alguna idea de cómo trabajar con un puntero a una lista de tamaño variable que funcione en Delphi? Gracias. Última edición por Ñuño Martínez fecha: 15-11-2007 a las 15:21:08. |
#2
|
|||
|
|||
La ultima forma es como se hace en delphi, pero el array se define con el tamaño mayor posible, po ejemplo:
Con esto en un S.O. de 32 bits estas definiendo un array TLista de 500 millones de elementos, lo maximo posible, pero no importa que el tipo de variable TLista que defines sea muchisimo mas grande que el que uses en realidad, porque nunca crearas un array de ese tamaño, ya que vas a utilizar punteros. Se utiliza esta definicion simplemente para poder usar la sintaxis ListP^[Indice] y te seguras asi de que el indice pueda utilizarse con cualquier tamaño de array al que apunte el puntero. Saludos |
#3
|
||||
|
||||
En Trucomanía la respuesta.
|
#4
|
||||
|
||||
La solución me parece lógica, y más si me decís que es la práctica oficial de Delphi. Casi me avergüenzo de no haberlo pensado yo mismo (total, un puntero siempre es un puntero aunque el ARRAY sea de millones de elementos). Creo que va a ser esa la solución.
Gracias a los dos. Última edición por Ñuño Martínez fecha: 15-11-2007 a las 15:56:25. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
uso de punteros | David | OOP | 19 | 14-12-2009 09:48:37 |
Punteros | davitcito | Varios | 2 | 25-04-2005 22:46:24 |
Como Asignar Variable Tipo Array de Tform a otro Array del Mismo tipo | morfeo21 | Varios | 5 | 17-08-2004 17:39:51 |
Punteros | rafadrover | OOP | 8 | 18-09-2003 10:09:47 |
|