Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
mr_Eugene
0 / 0 / 0
Регистрация: 26.11.2012
Сообщений: 18
#1

Выделение памяти под указатель - C++

19.11.2013, 20:12. Просмотров 428. Ответов 7
Метки нет (Все метки)

Здравствуйте форумчане,у меня возник маленький вопрос
Почему
C++
1
sizeof(char)
дает результат в 1 байт, а
C++
1
sizeof(char*) )
дает 4 байта.Как я понимаю под указатель всегда выделяется 4 байта независимо от типа?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2013, 20:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Выделение памяти под указатель (C++):

Выделение памяти под указатель - C++
Доброго времени суток. Возник такой вопрос: для любой программы, насколько мне известно, выделяется свой кусочек оперативной памяти. Когда...

Указатель, выделение памяти под него - C++
подскажите: int *var; *var = 1; и int *var = new int(1); эти 2 разные записи делают одно и тоже? т.е. первая запись тоже...

Указатель. Динамическое выделение памяти - C++
На мое мнение должно работать, но что-то не так.Помогите разобраться буду очень благодарен. int main() { char *name; name = new...

Указатель на Класс_1 в Классе_2 (динамическое выделение памяти) - C++
Как фиксануть ошибку? Может не правильно как-то вызываю? GetDifference не менять, она должна принимать класс по ссылке! P.s. или если...

Выделение памяти под матрицу - C++
Всем доброго времени суток! Есть такая проблема, у меня есть свой класс Cell. Мне нужно создать матрицу объектов этого типа и выделить под...

Выделение памяти под структуры - C++
Когда я только знакомился с кодингом на С(С++) я скачивал с инета очень много всякой литературы... Так вот... Недавно я начал заново...

7
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,534
Завершенные тесты: 1
19.11.2013, 20:22 #2
Именно так.
1
mr_Eugene
0 / 0 / 0
Регистрация: 26.11.2012
Сообщений: 18
19.11.2013, 20:27  [ТС] #3
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Именно так.
Благодарю
0
Max Dark
шКодер самоучка
1849 / 1649 / 603
Регистрация: 09.10.2013
Сообщений: 3,676
Записей в блоге: 6
Завершенные тесты: 2
19.11.2013, 20:30 #4
указатель занимает 8 байт для 64хбитного приложения и 4 для 32 бит
0
Байт
Эксперт C
16348 / 10624 / 1590
Регистрация: 24.12.2010
Сообщений: 20,272
19.11.2013, 20:30 #5
Цитата Сообщение от mr_Eugene Посмотреть сообщение
sizeof(char)
Только char - это не указатель.
А вот sizeof(double) = 8 - не удивляет?
ЗЫ. В 16-32 битовых, но суть не в этом...
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.11.2013, 20:30 #6
В указателе - адрес. Разрядность (размер) адреса, в 32-х битном проекте, 32 бита (4 байта).
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,534
Завершенные тесты: 1
19.11.2013, 20:55 #7
Ну что вы набежали. Я не успел картинку дорисовать. Х)

Выделение памяти под указатель

*pchar должен не содержать в себе один char, а должен содержать в себе его адрес. Следовательно его размер будет зависеть от разрядности системы.
1
mr_Eugene
0 / 0 / 0
Регистрация: 26.11.2012
Сообщений: 18
19.11.2013, 22:05  [ТС] #8
Всем спасибоРазобрался
0
19.11.2013, 22:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2013, 22:05
Привет! Вот еще темы с ответами:

Выделение памяти под структуру - C++
Доброго дня, товарисчи. В общем, возникла проблема при выделении памяти для структуры. Подскажите, пожалуйста, в чем ошибка. Собсна сам...

Выделение памяти под wchar_t - C++
вот такой код: char *str=new char; strcpy(str,"stroka"); int l=strlen(str); wchar_t *wstr=new wchar_t; mbstowcs(wstr,str,l); ...

Выделение памяти под структуру - C++
Наведите пример выделения памяти под структуру

Выделение памяти под массивы - C++
int **mas1 = new int*; for (int e = 0; e < q; e++) mas1 = new int; int **mas2 = new int*; for (int q = 0; q < e;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru