| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > динамическая память |
| Автор: slinx 27.4.2008, 01:26 | ||
Почему кога я последовательно выделяю память динамическому массиву функцией SetLength она тратит больше памяти ежели просто взять и выделить память, хотя длинна high одинакова.
|
| Автор: volvo877 27.4.2008, 12:11 | ||
slinx, а ты уверен, что mas и mas2 инициализируются одинаково? Может, надо вот так:
|
| Автор: slinx 27.4.2008, 21:35 | ||||
| Нет, я вот о чем, одному и тому же массиву мы присваиваем память по разному, если выделять память так, то память жрется фантастически,
а если так, то все нормально.
|
| Автор: aktuba 27.4.2008, 22:00 |
| Компилятор выделяет тот объем, который ты запросил, но у системы он берет больший, с запасом. При следующем запросе новый блок еще больше, соответственно у системы отбирается тоже больше. Вот тебе и "снежный ком" по отбору памяти у системы. |
| Автор: volvo877 27.4.2008, 22:36 | ||
Еще раз: что ты делаешь вот этим, ты понимаешь:
|
| Автор: slinx 28.4.2008, 08:33 |
| volvo877 ну по идеи выделяю память массиву на +1 десять тысяч раз в итоге должно получится 10000, но как я уже понял, я неправ, а как же тогда выделять память массиву поэтапно? |
| Автор: aktuba 28.4.2008, 12:55 |
Лучше этого избежать... |
| Автор: MetalFan 28.4.2008, 14:38 | ||||
этот фрагмент кода вообще ошибочен, без
как уже ранее сказал volvo877 |