Когда я пишу код для выделения памяти в свободном хранилище на С ++, мне было любопытно назначить указатель на эти данные. Например:
поскольку я объявляю и инициализирую указатель таким образом,
unsigned short int * pPointer = new unsigned short int;
*pPointer = value;
delete pPointer;
составляет 4 байта; с помощью нового ключевого слова выделяется в бесплатном магазине, и я могу присвоить значение этому адресу. Но у меня вопрос: зачем мне восстанавливать его тип, чтобы назначить указатель?
Я хочу сделать: unsigned short int * pPointer = new pPointer
легко?
Javascript будет использовать метод
newMethod = new Method()
для доступа к данным члена в методе.
Но я понимаю, как используется указатель.
pPointer = member data address and *pPointer = member data value
и каждый раз, когда я пробую что-то вроде,
int * pLocal = &pPointer
выдает ошибку. не может преобразовать int ** в int * пытается зарезервировать то же пространство памяти, поэтому я не могу сохранить его адрес в другом указателе, его только что зарезервированной памяти.
извините, если это сбивает с толку, но я просто хотел узнать, как выделить память в бесплатном хранилище, и для доступа к нему с помощью указателя уже есть тип с размером sizeof () по умолчанию для памяти требуется другое объявление типа после нового ключевого слова?
pPointer
- этоint*
(указатель наint
).&pPointer
является адресомpPointer
и имеет типint**
(указатель на указатель наint
), который не совпадает сint*
, поэтому вы получаете эту ошибку. - person Colonel Thirty Two   schedule 30.09.2014