Junior — Middle
¿Podrías dar un ejemplo de uso de asignación dinámica de memoria para almacenar una estructura de datos?
sobes.tech AI
Respuesta de la IA
En iOS, para la asignación dinámica de memoria, a menudo se utilizan clases que gestionan la memoria automáticamente, como NSMutableArray o Swift Array. Pero si hablamos de un nivel más bajo, se pueden usar las funciones malloc y free para asignar memoria para una estructura de datos.
Ejemplo en Swift usando UnsafeMutablePointer para un array dinámico de estructuras:
struct Point {
var x: Int
var y: Int
}
let count = 5
let pointer = UnsafeMutablePointer<Point>.allocate(capacity: count)
for i in 0..<count {
pointer.advanced(by: i).initialize(to: Point(x: i, y: i * 2))
}
// Uso de los datos
for i in 0..<count {
let point = pointer.advanced(by: i).pointee
print("Point \(i): (\(point.x), \(point.y))")
}
// Liberación de memoria
pointer.deinitialize(count: count)
pointer.deallocate()
Este enfoque permite gestionar manualmente la memoria, lo cual es útil cuando se trabaja con API de bajo nivel o para optimizar el rendimiento.