Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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.47 MB
Время: 0.042 c
15-1232645348
Кое кто
2009-01-22 20:29
2009.03.29
Серия английских фильмов


2-1233568023
Виктор
2009-02-02 12:47
2009.03.29
Как сменить язык ввода данных или включить клавишу Ins?


4-1207145739
kolj
2008-04-02 18:15
2009.03.29
Tapi -> lineanswer


15-1232751624
Четыре
2009-01-24 02:00
2009.03.29
Компонент добавляющий в заголовок окна кнопку справа Помогите


15-1232364173
Добежал
2009-01-19 14:22
2009.03.29
Сокрытие курсора с экрана





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский