Junior — Middle
Veri yapısını depolamak için dinamik bellek tahsisi kullanımına bir örnek verebilir misiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
iOS'ta dinamik bellek tahsisi için genellikle otomatik bellek yöneten sınıflar kullanılır, örneğin NSMutableArray veya Swift Array. Ancak daha düşük seviyede konuşursak, malloc ve free fonksiyonlarını kullanarak veri yapısı için bellek ayırabiliriz.
Swift'te UnsafeMutablePointer kullanarak dinamik yapı dizisi örneği:
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))
}
// Verilerin kullanımı
for i in 0..<count {
let point = pointer.advanced(by: i).pointee
print("Point \(i): (\(point.x), \(point.y))")
}
// Belleğin serbest bırakılması
pointer.deinitialize(count: count)
pointer.deallocate()
Bu yaklaşım, düşük seviyeli API'lerle çalışırken veya performans optimizasyonu yaparken manuel bellek yönetimine olanak tanır.