![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
vitlic |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 22.2.2007 Где: где home(){return где="тут"} Репутация: 1 Всего: 1 |
Пишу класс BitSet.
Один из конструкторов выглядит так:
Вопрос такой можно ли узнать размер dataP? // strlen не подходит, так как в BitSet могут быть любые значения, даже 0. Как это работает в компиляторе, ведь там это должно как-то отслеживаться, может через таблицы или структуры какие-нибудь. Если да, то можно ли проверять значения через них? |
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
vitlic, уже была подобная тема. Воспользуйся поиском.
А если кратко, то есть нестандартные непереносимые функции.... Зачем тебе? Тебе вон пользователь size передает. |
|||
|
||||
vitlic |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 22.2.2007 Где: где home(){return где="тут"} Репутация: 1 Всего: 1 |
Нашел, но не совсем то. Даже совсем не то.
А если юзверь передал размер не соответствующий размеру буфера? Максимум, что я могу сделать это:
К примеру size ошибочен, то это может привести к проблемам в memcpy. Но если выход нестандартные, непереносимые функции, то уж лучше так. пасиб. |
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
ну так исключи эту ситуацию! зачем извращаться когда, моно ситуацию исключить? |
|||
|
||||
vitlic |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 22.2.2007 Где: где home(){return где="тут"} Репутация: 1 Всего: 1 |
||||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
А если в stl-евские алгоритмы передать неправильный размер? А если юзер будет создавать массив неправильного размера? Неужели это все надо отлавливать? Зачем тогда вообще размер передавать ![]() В общем, жди правильного поведения от юзера(программиста), чем извращаться. Полностью согласен с vinterом. |
|||
|
||||
vitlic |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 22.2.2007 Где: где home(){return где="тут"} Репутация: 1 Всего: 1 |
Значит оставлю вот так:
Пусть юзеры наслаждаются своими ошибками) Снова всем спасибо ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |