|
|
|
Finalize array of array of Integer
|
|||
|---|---|---|---|
|
#18+
Синтетический пример, по которому есть вопрос: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. When a movie is over, it's a black ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 16:38 |
|
||
|
Finalize array of array of Integer
|
|||
|---|---|---|---|
|
#18+
Квейд, Будет финализироваться весь массив. Но здесь финализация не нужна. Все финализируется само. Явная финализация нужна при работе с указателями на типы с управляемым временем жизни. Тут этого нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 16:45 |
|
||
|
Finalize array of array of Integer
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_Квейд, Будет финализироваться весь массив. Но здесь финализация не нужна. Все финализируется само. Явная финализация нужна при работе с указателями на типы с управляемым временем жизни. Тут этого нет Дело в том, что по-факту моя процедура рекурсивная, то есть если я не финализирую массив А перед следующим рекурсивным вызовом DoDome, то массив A будет существовать и иметь свой экземпляр для каждого звена во всей цепочке рекурсии, чего я как раз пытаюсь избежать. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 16:55 |
|
||
|
Finalize array of array of Integer
|
|||
|---|---|---|---|
|
#18+
Квейдбудет существовать и иметь свой экземпляр для каждого звена во всей цепочке рекурсииНе факт. Оптимизатор может грохнуть переменную как только увидит, что она нигде не используется. Если хочешь все контролировать явно, то, имхо, проще вызвать Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 17:14 |
|
||
|
Finalize array of array of Integer
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_Квейдбудет существовать и иметь свой экземпляр для каждого звена во всей цепочке рекурсииНе факт. Оптимизатор может грохнуть переменную как только увидит, что она нигде не используется. Если хочешь все контролировать явно, то, имхо, проще вызвать Код: pascal 1. По идее, управляемые типы вроде массивов грохаются, когда выходят за пределы области видимости ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 17:40 |
|
||
|
Finalize array of array of Integer
|
|||
|---|---|---|---|
|
#18+
Квейдуправляемые типы вроде массивов грохаются, когда выходят за пределы области видимостиЭто гарантировано. Но оптимизатор может их прибить когда они больше не нужны. А может и не прибить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 17:54 |
|
||
|
Finalize array of array of Integer
|
|||
|---|---|---|---|
|
#18+
Finalize пройдётся по каждому из выделенных элементов массива, уничтожив все выделенные массивы внутри. это легко проверить, взяв указатель на выделенный элемент, и после Finalize попытаться обратится по указателю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 18:41 |
|
||
|
Finalize array of array of Integer
|
|||
|---|---|---|---|
|
#18+
Квейд, Зайди в процедуру под отладчиком, открой CPU Window (Ctrl+Alt+C) и увидишь вызов .. что-то там типа DynArrayClear. Это должно дать ответы на все вопросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 21:19 |
|
||
|
Finalize array of array of Integer
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_Квейдуправляемые типы вроде массивов грохаются, когда выходят за пределы области видимостиЭто гарантировано. Но оптимизатор может их прибить когда они больше не нужны. А может и не прибить Оптимизатор не настолько умный. Видя переменные managed типа, он тупо оборачивает весь код в блок try-finally, где в finally секции очищает все переменные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2018, 17:21 |
|
||
|
Finalize array of array of Integer
|
|||
|---|---|---|---|
|
#18+
При выходе из зоны видимости все очистится. Но надо понимать ситуации, когда зона видимости не работает. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2018, 02:09 |
|
||
|
Finalize array of array of Integer
|
|||
|---|---|---|---|
|
#18+
AX-Class, зона видимости тут совершенно ни при чём. О чём чётко написано в хэлпе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2018, 08:40 |
|
||
|
Finalize array of array of Integer
|
|||
|---|---|---|---|
|
#18+
AX-Class, Ну если неправильно работать с памятью, то да, потечёт. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. Как бы всегда для типизированных указателей применялось New() и Dispose(). Они и размер сами нужный выделят и Finalize при необходимости сделают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2018, 11:06 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39715285&tid=2040300]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
200ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 495ms |

| 0 / 0 |
