Sobes.tech
Junior — Middle

Mohl byste uvést příklad použití dynamického přidělování paměti pro uložení datové struktury?

sobes.tech AI

Odpověď od AI

V iOS se pro dynamické alokaci paměti často používají třídy, které paměť spravují automaticky, například NSMutableArray nebo Swift Array. Pokud však mluvíme o nižší úrovni, můžeme použít funkce malloc a free k alokaci paměti pro datovou strukturu.

Příklad v Swift s použitím UnsafeMutablePointer pro dynamický pole struktur:

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žití dat
for i in 0..<count {
    let point = pointer.advanced(by: i).pointee
    print("Point \(i): (\(point.x), \(point.y))")
}

// Uvolnění paměti
pointer.deinitialize(count: count)
pointer.deallocate()

Tento přístup umožňuje ruční správu paměti, což je užitečné při práci s nízkoúrovňovými API nebo pro optimalizaci výkonu.