Sobes.tech
Junior — Middle

Можете ли да дате пример коришћења динамичког алоцирања меморије за чување структуре података?

sobes.tech АИ

Одговор од АИ

У iOS-у за динамично алоцирање меморије често се користе класе које аутоматски управљају меморијом, као што су NSMutableArray или Swift Array. Међутим, ако говоримо о нижем нивоу, можемо користити функције malloc и free за алоцирање меморије за структуру података.

Пример у Swift-у са UnsafeMutablePointer за динамички низ структура:

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

// Коришћење података
for i in 0..<count {
    let point = pointer.advanced(by: i).pointee
    print("Point \(i): (\(point.x), \(point.y))")
}

// Ослобађање меморије
pointer.deinitialize(count: count)
pointer.deallocate()