Sobes.tech
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.