Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Можно ли проверить указатель на корректность?


Страницы:   1 2 3

SPeller ©   (2010-04-29 04:17:00) 

Есть ли стандартные механизмы проверки некого указателя на корректность? Например, что этот блок памяти выделен текущим менеджером памяти и при обращении к нему не будет AV?


Игорь Шевченко   (2010-04-30 11:12:00) [21]

Демо ©   (30.04.10 01:45) [35]

Займись на досуге увеличением на единицу переменной типа Pointer
И скажи, что такое ссылка в терминах Object pascal


Демо   (2010-04-30 09:08:00) [22]


> Германн ©   (30.04.10 01:54) [36]
>
> > Задайся вопросом, может ли ссылка быть указателем на произвольный
>
> > кусок памяти?
>
> А где в сабже упомянут термин "ссылка"?
> А у отвечающих на форуме ДМ нет принципиальной разницы между
> ссылкой и указателем. Бо ни о какой "адресной арифметике"
> они знать не хотят.


Вот именно!
Про ссылки вопроса не было-)

Некий указатель - расплывчато достаточно.


Германн   (2010-04-30 01:54:00) [23]


> Задайся вопросом, может ли ссылка быть указателем на произвольный
> кусок памяти?

А где в сабже упомянут термин "ссылка"?
А у отвечающих на форуме ДМ нет принципиальной разницы между ссылкой и указателем. Бо ни о какой "адресной арифметике" они знать не хотят.


Демо   (2010-04-30 01:45:00) [24]


> И вопрос автора именно по Дельфи.


Задайся вопросом, может ли ссылка быть указателем на произвольный кусок памяти? А указатель?
Можно ли указатель на PChar увеличить на единицу? А ссылку на объект?


Германн   (2010-04-30 01:16:00) [25]


> К указателям применима адресная арифметика, к ссылкам -
> нет

Какая-то жуткая смесь из Си, Паскаля и иже с ними.
Но тут ведь форум ДМ, ne's pa?
И вопрос автора именно по Дельфи.


Демо   (2010-04-30 01:14:00) [26]


> Плохиш ©   (30.04.10 00:44) [31]
> Мая рыдалъ...


Не плачь.


Игорь Шевченко   (2010-04-30 00:45:00) [27]


> К указателям применима адресная арифметика, к ссылкам -
> нет, так как не имеет смысла.


"Покажи нашему человеку со средним образованием, покажи ему твердый шанкр и спроси: "какой это шанкр - твердый или мягкий?" - он обязательно брякнет: "мягкий, конечно"; а покажи ему мягкий - так он и совсем растеряется. А там - нет. Там, может быть, не знают, сколько стоит "зверобой", но уж если шанкр мягкий, так он для каждого будет мягок и твердым его никто не назовет... "

С указателем все то же самое...


Плохиш   (2010-04-30 00:44:00) [28]

Мая рыдалъ...


Демо   (2010-04-30 00:39:00) [29]


>  Что я делаю не так?


Всё.


> Игорь Шевченко ©   (30.04.10 00:15) [28]
> > Ссылки на экземпляры классов - это не указатели.почему
> ?


К указателям применима адресная арифметика, к ссылкам - нет, так как не имеет смысла.


Плохиш   (2010-04-30 00:35:00) [30]


> Демо ©   (30.04.10 00:02) [27]

> Ссылки на экземпляры классов - это не указатели.

А что это?

> > А смысл? Типa, у дерьмокодера левая рука не знает, что
> кодит
> > правая? Или чаво вчера накодил сегодня забыл?
>
>
> Думаешь, ты всегда помнишь свой дерьмокод?

За много лет ни разу не потребовалось обсуждаемого сабжа. Что я делаю не так?


Игорь Шевченко   (2010-04-30 00:15:00) [31]


> Ссылки на экземпляры классов - это не указатели.


почему ?


Демо   (2010-04-30 00:02:00) [32]


> Anatoly Podgoretsky ©   (29.04.10 12:19) [14]
> > Ins  (29.04.2010 11:05:12)  [12]Не на ожидаемые, а на
> правильные, а то можно получить ожидаемыt, но не совсем
> те, поскольку возможна завязка Obj := Create, Free, Create.
>  И даже без второго Create


Ссылки на экземпляры классов - это не указатели.


> А смысл? Типa, у дерьмокодера левая рука не знает, что кодит
> правая? Или чаво вчера накодил сегодня забыл?


Думаешь, ты всегда помнишь свой дерьмокод?


> SPeller ©   (29.04.10 04:17) 
> Есть ли стандартные механизмы проверки некого указателя
> на корректность? Например, что этот блок памяти выделен
> текущим менеджером памяти и при обращении к нему не будет
> AV?


Если бы возникла необходимость, я бы для интереса реализовал простейший набор функций, которые через стандартные функции выделяли/освобождали память, но при этом вели справочник выделенных блоков памяти.

Неэффективное решение, и работать будет только для явных выделений памяти, но рабочее.


Игорь Шевченко   (2010-04-29 21:14:00) [33]

У венды есть такой способ, HeapValidate+HeapWalk для юзеровских функций и VirtualQuery для системных.


Anatoly Podgoretsky   (2010-04-29 20:02:00) [34]

> Ega23  (29.04.2010 17:09:24)  [24]

Не корректный указатель не обязан приводить к исключению


Ega23   (2010-04-29 17:09:00) [35]

try..except - чем не проверка?


Rouse_   (2010-04-29 16:21:00) [36]


> Например, что этот блок памяти выделен текущим менеджером
> памяти и при обращении к нему не будет AV?

IsBadReadPtr / IsBadWritePtr устроит? Ну или VirtualQuery()...


b z   (2010-04-29 16:05:00) [37]


> рядовым участником
А не рядовым (кстати что это?) уже догма? :)


Ins   (2010-04-29 15:00:00) [38]


> Утверждаешь без IMHO.


)))))))
Довожу до сведения, совершенно ВСЕ сказанное на любом форуме любым рядовым участником является IMHO. И да, от своих слов не отказываюсь.


oxffff   (2010-04-29 14:52:00) [39]


> Ins ©   (29.04.10 14:43) [19]
>
> > oxffff ©   (29.04.10 14:16) [18]
>
>
> Предлагаешь автору в своей программе реализовать что-то
> похожее на автоматический уборщик мусора? Ну а я предлагаю
> аккуратно работать с указателями. За всю практику ни разу
> не возникала потребность проверить валидность указателя
> или ссылки. Что я делаю неправильно?


Утверждаешь без IMHO.


> Так вот, для выявления таких корректных указателей механизма
> не то что не существует, его и не может существовать.


Ins   (2010-04-29 14:43:00) [40]


> oxffff ©   (29.04.10 14:16) [18]


Предлагаешь автору в своей программе реализовать что-то похожее на автоматический уборщик мусора? Ну а я предлагаю аккуратно работать с указателями. За всю практику ни разу не возникала потребность проверить валидность указателя или ссылки. Что я делаю неправильно?


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо