Junior — Middle
Mohol by ste uviesť príklad použitia dynamického prideľovania pamäte na uloženie dátovej štruktúry?
sobes.tech AI
Odpoveď od AI
V iOS sa často na dynamické prideľovanie pamäte používajú triedy, ktoré správu pamäte spravujú automaticky, ako napríklad NSMutableArray alebo Swift Array. Ak však hovoríme o nižšej úrovni, môžeme použiť funkcie malloc a free na prideľovanie pamäte pre dátovú štruktúru.
Príklad v Swift s použitím UnsafeMutablePointer pre dynamický pole štruktúr:
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))
}
// Použitie dát
for i in 0..<count {
let point = pointer.advanced(by: i).pointee
print("Point \(i): (\(point.x), \(point.y))")
}
// Uvoľnenie pamäte
pointer.deinitialize(count: count)
pointer.deallocate()
Tento prístup umožňuje manuálne riadenie pamäte, čo je užitočné pri práci s nízkoúrovňovými API alebo na optimalizáciu výkonu.