Я сейчас перебираю указатели в классе, и наш учебник меня немного смущает.Они начинают с того, что следующий пример копирует значение в месте, на которое указывают деньги, в место, на которое указывает myMoney:
*myMoney = *money;
Затем следующий пример копирует значение в деньгах в myMoney
myMoney = money;
Этот второй пример вызывает утечку памяти, поскольку исходное местоположение, указанное * myMoney, больше не доступно.Это потому, что память, которая раньше содержала указатель, теперь является реальным значением с плавающей запятой вместо адреса памяти?
Теперь часть, которая меня немного смущает, находится в следующей части, когда они показывают другое объявление.Полный пример:
char alpha[20];
char *alphaPtr;
char *letterPtr;
vod Process(char []);
.
.
alphaPtr = alpha;
letterPtr = &alpha[0];
Process(alpha);
Поскольку в книге сказано, что
myMoney = money;
создаст утечку памяти, поскольку она разрывает связь между указателем и указателем на адрес, будет
alphaPtr = alpha;
вызвать ссылку на память также?Не должны ли они объявить это как
char *alphaPtr = *alpha;