Junior — Middle
Vai jūs varētu sniegt piemēru, kā izmantot dinamisko atmiņas sadali datu struktūras glabāšanai?
sobes.tech AI
Atbilde no AI
iOS bieži izmanto dinamiskās atmiņas piešķiršanai klases, kas automātiski pārvalda atmiņu, piemēram, NSMutableArray vai Swift Array. Bet, ja runājam par zemāku līmeni, var izmantot malloc un free funkcijas, lai piešķirtu atmiņu datu struktūrai.
Piemērs Swift valodā ar UnsafeMutablePointer izmantošanu dinamiskai struktūru masīvam:
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))
}
// Datu izmantošana
for i in 0..<count {
let point = pointer.advanced(by: i).pointee
print("Point \(i): (\(point.x), \(point.y))")
}
// Atbrīvot atmiņu
pointer.deinitialize(count: count)
pointer.deallocate()
Šī pieeja ļauj manuāli pārvaldīt atmiņu, kas ir noderīgi, strādājot ar zema līmeņa API vai optimizējot veiktspēju.