Sobes.tech
Junior — Middle

Масалан аст, ки намунаи истифодаи тақсимоти динамикии хотира барои нигоҳдории сохтори маълумотро диҳед?

sobes.tech AI

Ҷавоб аз AI

Дар iOS барои тақсимоти динамикии хотира одатан синфҳое истифода мешаванд, ки хотираро автоматӣ идора мекунанд, масалан NSMutableArray ё Swift Array. Аммо агар дар сатҳи поёнтар сухан гӯем, метавонем функсияҳои malloc ва free-ро барои тақсимоти хотира барои сохтори маълумот истифода барем.

Масалан дар Swift бо истифода аз UnsafeMutablePointer барои массиви динамикии сохторҳо:

struct Point {
    var x: Int
    var y: Int
}

ҳисоб = 5
пойнтер = UnsafeMutablePointer<Point>.allocate(capacity: ҳисоб)

барои i дар 0..<ҳисоб {
    пойнтер.advanced(by: i).initialize(to: Point(x: i, y: i * 2))
}

// Истифодаи маълумот
барои i дар 0..<ҳисоб {
    нуқта = пойнтер.advanced(by: i).pointee
    чоп кунед("Нуқта \(i): (\(нуқта.x), \(нуқта.y))")
}

// Озод кардани хотира
пойнтер.deinitialize(count: ҳисоб)
pойнтер.deallocate()

Ин рӯнамоӣ имкон медиҳад, ки ба таври дастӣ хотирасозӣ кунед, ки дар кор бо API-ҳои сатҳи поён ё барои оптимизатсияи иҷроиш кӯмак мекунад.