![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
А я думал, что мы просто не итили указатель. То есть он указывает не пойми куда, то ест ьвылет очень вероятен. А SEH тем более плафтормазависим (онли винда). |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Влезаю в сей баян.
Можно показать на примере, когда программист (если он не мазохист) не может знать историю указателя? ИМХО мнение Kuvaldis самое граммотное и правильное:
|
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
||||
|
||||
| SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 15 Всего: 124 |
Для проверок такого рода используются соответствующие функции: IsBadReadPtr and IsBadWritePtr test whether a given address/size represents a valid block of readable or writable memory for the calling process. These functions know how Windows® allocates memory internally, so they're good at finding bad pointers. Также IsBadCodePtr и IsBadStringPtr Вот тема аналогичная (трёхмесячной давности ) |
|||
|
||||
| Earnest |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Тот же совет: инициализировать. И еще один: не использовать оин пойнтер по разным назначениям. А то часто пишут такой код:
Самый рассадник для ошибок, особенно при сопровождении. Все должно быть локально: переменная объявляется непосредственно перед использованием и тут же инициализируется. Для других целей заводим другую переменную, не треснет компилятор. Добавлено @ 19:32 Сам же там написал: иногда помогают, но не всегда. Опять же, с их помощью нельзя определить, является ли указатель началом объекта, а только то, что он указывает на память, записав в которую ты не получишь исключения. -------------------- ... |
||||
|
|||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |