Junior — Middle
Pourriez-vous donner un exemple d'utilisation de l'allocation dynamique de mémoire pour stocker une structure de données?
sobes.tech IA
Réponse de l'IA
En iOS, pour l’allocation dynamique de mémoire, on utilise souvent des classes qui gèrent la mémoire automatiquement, comme NSMutableArray ou Swift Array. Mais si l’on parle d’un niveau plus bas, on peut utiliser les fonctions malloc et free pour allouer de la mémoire pour une structure de données.
Exemple en Swift utilisant UnsafeMutablePointer pour un tableau dynamique de structures :
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))
}
// Utilisation des données
for i in 0..<count {
let point = pointer.advanced(by: i).pointee
print("Point \(i): (\(point.x), \(point.y))")
}
// Libération de la mémoire
pointer.deinitialize(count: count)
pointer.deallocate()
Cette approche permet de gérer manuellement la mémoire, ce qui est utile lors de l’utilisation d’API de bas niveau ou pour optimiser les performances.