#c #pointers
#c #указатели
Вопрос:
Я запускаю этот код и получаю некоторое значение мусора при печати * ptr. Что может быть возможной причиной и как я могу избежать этого?
# include <stdio.h>
int main()
{
int test = 1;
int *ptr = amp;test;
*ptr = 10;
test ;
printf("nThe value is %d", *ptr);
}
Комментарии:
1.
*ptr
увеличивает указатель. Таким образом, он больше не указывает на допустимое местоположение. Измените это на*ptr = 10;
Ответ №1:
Вы переместились ptr
с ptr
. Почему?
Не делайте этого.
Ответ №2:
Оператор *ptr
увеличивает указатель, который не может быть действительным для вашей программы. Перепишите инструкцию как *ptr = 10;