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