Sobes.tech
Назад к вопросам
Junior — Middle
74

Мог бы ты привести пример использования динамического выделения памяти для хранения структуры данных?

Компании, где спрашивали
СБЕРСБЕР
GreenData

Ответ от нейросети

sobes.tech AI

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

Такой подход позволяет вручную управлять памятью, что полезно при работе с низкоуровневыми API или оптимизации производительности.