在C中获取垃圾值的原因
我正在运行这段代码,在打印*ptr时得到一些垃圾值。可能的原因是什么?我怎样才能避免这种情况在C中获取垃圾值的原因,c,pointers,C,Pointers,我正在运行这段代码,在打印*ptr时得到一些垃圾值。可能的原因是什么?我怎样才能避免这种情况 # include <stdio.h> int main() { int test = 1; int *ptr = &test; *ptr++ = 10; test++; printf("\nThe value is %d", *ptr); } #包括 int main() { int检验=1; int*ptr=&test; *ptr++=10; 测试++
# include <stdio.h>
int main()
{
int test = 1;
int *ptr = &test;
*ptr++ = 10;
test++;
printf("\nThe value is %d", *ptr);
}
#包括
int main()
{
int检验=1;
int*ptr=&test;
*ptr++=10;
测试++;
printf(“\n值为%d”,*ptr);
}
您使用ptr++
移动了ptr
。为什么?
不要那样做。你用
ptr++
移动了ptr
。为什么?
不要这样做。语句
*ptr++
会增加对程序无效的指针。
将语句重写为
*ptr=10代码>语句*ptr++
增加对程序无效的指针。
将语句重写为*ptr=10代码>*ptr++
递增指针。因此,它不再指向有效位置。将其更改为*ptr=10代码>*ptr++
递增指针。因此,它不再指向有效位置。将其更改为*ptr=10代码>