![]() |
Asignar memoria
Holas, tengo la siguiente duda, he creado un record con la siguiente estructura:
A su vez he creado un tipo que apunta a dicho record: Estas estructuras las utilizo para crear elementos en otra clase: El problema se suscita al crear un nuevo elemento, el cual lo realizo en el procedure AddParam: Como veran utilizo el comando NEW para asignar la memoria al nuevo objeto, el cual cumple su función, pero antes de llegar a utilizar New utilice: Pero su utilización hacia que se borrara parte del contenido de variables que no participaban dentro del procedure, también probé: Pero también tuve problemas, en la asignación de los valores al puntero. Mi pregunta es AllocMem y GetMen hacen asignación de memoria disponible o asignan memoria de la que primero encuentran, ya que de acuerdo a las pruebas realizadas, ambos métodos interfieren con la memoria utilizada por otras variables o componentes asignados con anterioridad....Y por ultimo que diferencia existe entre estos dos métodos y el comando NEW... Saludos.... |
Hola doctorhd.
Cita:
La diferencia entre la función AllocMem y el procedimiento GetMem es que el primero inicializa la memoria asignada y el segundo no. Debido a esto último GetMem es mas eficiente en velocidad (pero a veces es necesaria la inicializacion). New difiere de los anteriores en que no es necesario indicarle el tamaño a de memoria a asignar, pero no puede manejar un tamaño arbitrario de memoria. Unos ejemplos muy sencillos de cada uno:
Saludos :) |
doctorhd,
Cita:
AllocMem, GetMen y New solo asignan bloques de memoria que estén disponibles, en caso de no encontrar la memoria requerida, ocurre una excepción de tipo EOutOfMemory pero en ningún caso se sobrescriben bloques de memoria que estén siendo utilizados. Revisa esta información Cita:
Nelson. |
La franja horaria es GMT +2. Ahora son las 10:18:51. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi