Форум: "Прочее";
Текущий архив: 2009.03.29;
Скачать: [xml.tar.bz2];
ВнизГлюк Дельфи7 Найти похожие ветки
← →
Четыре (2009-01-24 23:24) [0]Создаю такой Юнит:
unit Unit2;
interface
type
PIntegers = ^PIntegers;
TIntegers = array of Integer;
implementation
end.
Прописываю его в uses Unit1.pas основной программы, набираю в какой нибудь процедуре Unit2 и ставлю точку, после этого Дельфи7 мгновенно закрывается без каких-либо предупреждений.
Если закомментировать строчку "PIntegers = ^PIntegers;", то этого не происходит. Почему так? И как можно исправить?
Есть ли где-нибудь в Дельфи такой важный тип как array of Integer ?
← →
@!!ex © (2009-01-24 23:26) [1]PIntegers = ^PIntegers;
Это жесть. :))
Я понимаю почему он закрывается... Stack Overflow?
← →
Anatoly Podgoretsky © (2009-01-24 23:35) [2]> Четыре (24.01.2009 23:24:00) [0]
Даже если исправить ^PIntegers на ^ТIntegers;, то
Выписка из справки:
Dynamic-array variables are implicitly pointers and are managed by the same reference-counting technique used for long strings. To deallocate a dynamic array, assign nil to a variable that references the array or pass the variable to Finalize; either of these methods disposes of the array, provided there are no other references to it. Dynamic arrays are automatically released when their reference-count drops to zero. Dynamic arrays of length 0 have the value nil. Do not apply the dereference operator (^) to a dynamic-array variable or pass it to the New or Dispose procedure.
Сптай выделеное
← →
Четыре (2009-01-24 23:53) [3]
> @!!ex © (24.01.09 23:26) [1]
>
> PIntegers = ^PIntegers;
> Это жесть. :))
> Я понимаю почему он закрывается... Stack Overflow?
Никаких ошибок не указывает. А в чём жесть то? Если не ставить точку, то всё прекрасно работает.
← →
Четыре (2009-01-24 23:55) [4]
> Anatoly Podgoretsky © (24.01.09 23:35) [2]
>
> > Четыре (24.01.2009 23:24:00) [0]
>
> Даже если исправить ^PIntegers на ^ТIntegers;
А-а-а-а! Понял!
Это ошибка просто. Вылетать перестало.
← →
Четыре (2009-01-24 23:59) [5]
> Anatoly Podgoretsky © (24.01.09 23:35) [2]
> Do not apply the dereference operator (^) to a dynamic-array
> variable
Написано, что не использовать ^ для динамических массивов. А почему?
← →
@!!ex © (2009-01-25 00:45) [6]> [5] Четыре (24.01.09 23:59)
вероятно потому, что динамический массив сам по себе является указателем?
← →
Германн © (2009-01-25 01:13) [7]
> вероятно потому, что динамический массив сам по себе является
> указателем?
Массив? Является указателем?
Переведи.
← →
ketmar © (2009-01-25 01:23) [8]>[7] Германн © (2009-01-25 01:13:00)
dynarray -- недоуказатель, да. WriteLn(size(dynarray));
---
All Your Base Are Belong to Us
← →
Германн © (2009-01-25 02:40) [9]
> ketmar © (25.01.09 01:23) [8]
>
> >[7] Германн © (2009-01-25 01:13:00)
> dynarray -- недоуказатель, да. WriteLn(size(dynarray));
>
Это перевод на какой язык?
Но уж точно не на Дельфи!
← →
TUser © (2009-01-25 09:39) [10]Я, если честно, использовал ^ для динмассивов, все до сих пор работает, Д7, турбо и фрипаскаль.
← →
ketmar © (2009-01-25 15:30) [11]>[9] Германн © (2009-01-25 02:40:00)
может, sizeof. ну, забыл, да. устал, да и уж давненько на Delphi не писал.
---
All Your Base Are Belong to Us
← →
Четыре (2009-01-26 13:20) [12]А вообще, то, что Дельфи вылетает ни слова не сказав - это не правильно. Должна была бы просто выводить сообщение об ошибке.
← →
Плохиш © (2009-01-26 22:30) [13]
> Четыре (26.01.09 13:20) [12]
>
> А вообще, то, что Дельфи вылетает ни слова не сказав - это
> не правильно.
Сколько слов ты успеешь сказать, если тебе отрубят кочерыжку, перед тем как сдохнешь?
← →
Palladin © (2009-01-26 22:37) [14]глюкофайндеры брейнфри...
← →
Palladin © (2009-01-26 22:40) [15]тоесть, брейнлесс имел я... ввиду :)
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2009.03.29;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.048 c