Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Валидность указателя 
:(
    Опции темы
Nuzur
Дата 3.11.2006, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 4.7.2004

Репутация: нет
Всего: 5



Поиском пользовался но нормльного ответа не нашел smile

Как проверить валиден указатель или нет? Без вылета программы конечно smile


--------------------
Never again...
PM MAIL   Вверх
sergejzr
Дата 3.11.2006, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 19
Всего: 360



никак. Если ты сам не пометил его.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
SergeCpp
Дата 3.11.2006, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


 
**


Профиль
Группа: Участник
Сообщений: 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

...до некоторой степени (не всегда и не везде)

PM MAIL WWW ICQ   Вверх
Nuzur
Дата 3.11.2006, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 4.7.2004

Репутация: нет
Всего: 5



SergeCpp, но не помогло.
Неужто нет 100 процентного способа?

Это сообщение отредактировал(а) Nuzur - 3.11.2006, 15:53


--------------------
Never again...
PM MAIL   Вверх
sergejzr
Дата 3.11.2006, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 19
Всего: 360



Nuzur, на пальцах smile

Существует обьект - Молодой человек Вася Пупкин
У тебя есть указатель - его адрес.

Ты приходишь по адресу, открывает молодой человек. Как тебе определить, это Вася, или нет, если у человека нет документов?

Один кусок памяти от другого не отличить. Указатель может указывать на кусок, который уже используется кем нибудь другим. Но определить это невозможно, если заранее не позаботится об этом меткой.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Nuzur
Дата 3.11.2006, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 4.7.2004

Репутация: нет
Всего: 5



sergejzr, Я это прекрасно понимаю smile
Просто можна стделать catch + try и посмотреть сможен\не сможет записать\считать, это оч просто но мне этот метод не нравиццо, ну не красиво это и тормозно.
А ситуация очень хитрая, я про код и ставить кучу rtnxtd ^(


--------------------
Never again...
PM MAIL   Вверх
sergejzr
Дата 3.11.2006, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 19
Всего: 360



Цитата(Nuzur @  3.11.2006,  15:18 Найти цитируемый пост)
Просто можна стделать catch + try и посмотреть сможен\не сможет записать\считать,

Это не факт, что сработает.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Nuzur
Дата 3.11.2006, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 4.7.2004

Репутация: нет
Всего: 5



sergejzr,  а когда нет то? Хотя вы правы, типа Access violaion и все такое.
Так что ж делать кого винить, пятница самое врямя smile
Ну кроме меня конечно который довел до такого smile


--------------------
Never again...
PM MAIL   Вверх
JackYF
Дата 3.11.2006, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Что делать - использовать умные указатели...


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
bel_nikita
Дата 3.11.2006, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



Цитата(JackYF @ 3.11.2006,  16:28)
Что делать - использовать умные указатели...

Поддерживаю. Оберни в std::auto_ptr или boost::shared_ptr


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
JackYF
Дата 3.11.2006, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Лучше все-таки в shared... std::auto_ptr использовать очень опасно...


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Nuzur
Дата 3.11.2006, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 4.7.2004

Репутация: нет
Всего: 5



JackYF, что за shared?
И вообще можно поподробнее немного а то я с ними в 1-й раз сталкиваюсь smile

Это сообщение отредактировал(а) Nuzur - 3.11.2006, 18:38


--------------------
Never again...
PM MAIL   Вверх
JackYF
Дата 3.11.2006, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



ну, boost::shared_ptr или его аналог...

bel_nikita же сказал 2 постами ранее...


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Damarus
Дата 3.11.2006, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 671
Регистрация: 6.5.2006

Репутация: 6
Всего: 29



Цитата(Nuzur @  3.11.2006,  18:30 Найти цитируемый пост)
что за shared?

boost::shared_ptr class template
PM MAIL ICQ Jabber   Вверх
Nuzur
Дата 6.11.2006, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 4.7.2004

Репутация: нет
Всего: 5



Damarus, но все-же а как-нить без бустов можно обойтись?


--------------------
Never again...
PM MAIL   Вверх
JackYF
Дата 6.11.2006, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Да возьми и напиши свой... Благо в многих книгах тема умных указателей освещается подробно и с примерами...


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0578 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.