Sobes.tech
Junior — Middle

Tudnál példát mondani a dinamik memóriafoglalás használatára adatszerkezet tárolására?

sobes.tech MI

Válasz az MI-től

Az iOS-ben a dinamikus memóriafoglaláshoz gyakran használnak olyan osztályokat, amelyek automatikusan kezelik a memóriát, például az NSMutableArray vagy a Swift Array. De ha alacsonyabb szinten beszélünk, a malloc és free függvényeket használhatjuk adatszerkezetekhez tartozó memória foglalására.

Példa Swift-ben UnsafeMutablePointer használatával dinamikus struktúra tömbre:

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))
}

// Az adatok használata
for i in 0..<count {
    let point = pointer.advanced(by: i).pointee
    print("Point \(i): (\(point.x), \(point.y))")
}

// Memória felszabadítása
pointer.deinitialize(count: count)
pointer.deallocate()

Ez a megközelítés lehetővé teszi a memória kézi kezelését, ami hasznos alacsony szintű API-k esetén vagy a teljesítmény optimalizálásához.