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

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

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

« : 23-03-2005 13:50 » 

char *szServerName;
szServerName=new char [n+1];
Допустим n=9.
sizeof(szServerName).
sizeof возвращает всегда 4, в независимости от того чему равнялось n.
Естественный для меня вопрос-"ПОЧЕМУ"?
Записан

ещё один вопрос ...
Alf
Гость
« Ответ #1 : 23-03-2005 13:54 » 

szServerName является указателем на символ, т.е. фактически адресом байта в оперативной памяти. Поскольку большинство 32-разрядных процессоров используют адресное пространство 4 гигабайта, то любой указатель занимает слово, или 4 байта, независимо от типа данных, на который он указывает.
Записан
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #2 : 23-03-2005 13:58 » 

sizeof не ошибается...


Записан

А птичку нашу прошу не обижать!!!
nikedeforest
Команда клуба

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

« Ответ #3 : 23-03-2005 14:20 » 

т.е. получается, что sizeof возвращает размер указателя, я правильно понял?
Записан

ещё один вопрос ...
Alf
Гость
« Ответ #4 : 23-03-2005 14:30 » 

Конечно.

sizeof возвращает размер своего аргумента в байтах. Если в конструкции sizeof(szServerName) szServerName является указателем, то функция вернет размер указателя в байтах, а это всегда 4, на какой бы большой объект он ни указывал.
Записан
nikedeforest
Команда клуба

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

« Ответ #5 : 23-03-2005 14:48 » new

Понял, спасибо.
Записан

ещё один вопрос ...
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines