Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для EvgeniyQQQ

Пользователь


Сообщения: 133
Благодарности: 21

Профиль | Сайт | Отправить PM | Цитировать


Цитата mrcnn:
Как изменяется p при присваивании p=t? Допустимо ли оно? »
p - это всего лишь переменная хранящая адрес на первый байт блока памяти который Вы выделили оператором new. char - сообщает компилятору, какого типа данные там будут храниться, а так же сообщает сколько памяти нужно выделить (в Вашем случае 1 байт x 5 и 1 x 2, если бы указали тип wchar_t, то было бы 2x5 и 2x2, тоесть памяти под этот тип данных необходимо в 2 раза больше).
Если Вы присвоите p адрес содержащийся в t, то p просто будет указывать на первый байт блока памяти выделенный во второй строке Вашего кода. При этом блок памяти выделенный в первой строке будет утерян и превратиться в мусор.
Компилятор не контролирует сколько памяти было выделено для конкретного объекта (p или t), эта процедура ложиться на плечи самого программиста.

-------
"Не соглашайся ни на что, кроме совершенства!" - Анонимный автор.
"Совершенство достигается только к моменту полного краха." - К.Н.Паркинсон.

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:00, 29-07-2008 | #2