Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

_msize и sizeof

354
05 апреля 2007 года
ШпиЁн
468 / / 19.02.2006
Проблема такая...
В функцию передается аргумент - указатель.
Как внутри функции ПРАВИЛЬНО получить размер блока?

Если память выделялась через malloc(new) _msize работает верно, если же, к примеру:
 
Код:
char buf[10] = "some_text";
printf("%d", _msize(buf));
, программка вываливается... такое надо мерять через sizeof...

КАК распознать что передается в функцию?
3
05 апреля 2007 года
Green
4.8K / / 20.01.2000
1. _msize - это хак языка, не рекомендую использовать.
2. sizeof - не функция.
3. Передаешь указатель на блок памяти, передавай и размер этого блока.
4. Если пишешь на С++, используй ООП. Оберни свой буфер соотв. классом, который будет заниматься менеджментом этого буфера. Ну или использую уже готовые контейнеры.
354
05 апреля 2007 года
ШпиЁн
468 / / 19.02.2006
я остановился на четвертом варианте. спасибо :о)
56K
17 декабря 2009 года
AlEmu87
1 / / 17.12.2009
char buf[10] = "some_text";
здесь выделение не в heap, а локально, поэтому и не работает
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог