как создать массив не известной длинны?

Тема в разделе "WASM.BEGINNERS", создана пользователем RuAsm, 23 мар 2007.

  1. ShadoWich

    ShadoWich New Member

    Публикаций:
    0
    Регистрация:
    11 фев 2007
    Сообщения:
    35
    Quantum
    Это понятно, но я был несколько удивлён тому, что есть дин массивы в стандартных АПИ.
     
  2. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    пробывал юзать IStream.. довольно просто. хотя не думаю что быстро.
     
  3. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Quantum
    Полностью согласен ;), но задача была показать, что VirtualAlloc проста и удобна при решении поставленной здесь задачи, а отнюдь не столь страшна как думают некоторые бегиннерсы ;).
    Связанный список - отличное средство для работы с блочными цепочками данных, но для обслуживания "растущего" массива (логическая структура которго ориентирована на цельное адресное пространство) список имхо не есть достойный конкурент виртуальному адресному пространству, по мере необходимости заполняемому физическими страницами ;)
    Хотя если строишь именно связанный список, элементы которого требуют динамического выделения памяти и не боятся перемешивания, тогда совсем другое дело ;)

    leo
    Про гранулярность в 4к или 4М я знаю, но поскольку раздел бегинерс, то хотел подчеркнуть что эта гранулярность совершенно прозрачна для того кто не хочет в ней разбираться - запрашивай памяти сколько тебе нужно и VirtualAlloc прекрасно сработает ;) Правда в VirtualFree с этим есть грабли, но если заполнять массив частями, а освобождать целиком, то и они "в лоб не ударят" :)

    crypto
    А винда полюбому выделяет твоему процессу персональное адресное пространство ;) и если ты его не "откромсаешь", то оно просто "зазря пропадёт" :)). Тут суть резервирования не в "открамсывании", а в том, чтобы избежать каши из блоков памяти в пределах твоей программы.
    Хотя конечно же ты прав, что нужно учитывать, что винда выделяет юзерскому процессу всего 2Гб или если очень попросить то 3 :) и если нужно несколько массивов то "разбрасываться" гигабайтами не получится :)
     
  4. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Ага тема получила любопытное продолжение, из которого следует, что резервирование Гигабайта в некоторых случаях предпочтительнее, выделения кучи мелких блоков :))