![]() | En aquellas ocasiones en que se dispone de memoria suficiente para garantizar la creación de grandes bloques de memoria, podemos optar por el uso de estructuras lineales creadas y destruídas dinámicamente. Esto produce un rendimiento óptimo, aunque existan mayores riesgos debidos a fragmentación del cúmulo. |
![]() | Una posible aproximación al problema de las estructuras lineales reservadas dinámicamente consiste en crear listas estáticas de punteros, para después ir creando o destruyendo pequeños bloques de memoria cuyas direcciones se almacenarán en la lista mencionada. Esto supone un importante ahorro de memoria respecto al método anterior, manteniendo la posibilidad de recorrer la lista mediante un índice. También puede ser una forma interesante de acelerar los procedimientos de clasificación. |
![]() | Una tercera forma de abordar el problema consiste en crear dinámicamente una lista de punteros. En los elementos de esa lista se irán almacenando, a medida que sea necesario,las direcciones de bloques de memoria empleados para almacenar información. Al ser dinámica la lista de punteros, se puede pensar en modificar su tamaño en caso necesidad. De este modo se tendrían las ventajas de rapidez de acceso asociadas a la lista estática de punteros y la flexibilidad derivada de una estructura dinámica, de dimensiones modificables mediante realloc() . |