Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Измерение выделенной памяти по указателю  (Прочитано 4852 раз)
0 Пользователей и 1 Гость смотрят эту тему.
LemmonRus
Помогающий

ru
Offline Offline
В правильно заданном вопросе 90% ответа.


« : 06-11-2009 12:52 » 

Проблема такая: имеется указатель на массив, тип массива не известен (статический, динамический), известен только размер элемента.
Нужно выяснить количество элементов, sizeof не предлагать, т.к. он выводит мне размер первого элемента.
P.S. Выйти перебором за пределы массива, тоже не предлагать.
« Последнее редактирование: 06-11-2009 13:08 от Sel » Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #1 : 06-11-2009 13:12 » 

LemmonRus, никак. Поэтому, размер выделенной памяти всегда предаётся прицепом. Уж тем более если тип неизвестен.

Если у тебя есть размер выделенной памяти, то раздели её на размер первого элемента и всё.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 06-11-2009 13:15 » 

Общего способа не существует. Есть только какие-то хаки для конкретных реализаций malloc.
Но если неизвестно, кто и каким способом выделял память - то ничего не получится.

P.S. Скажем, есть функция _msize
« Последнее редактирование: 06-11-2009 13:18 от Вад » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines