我故意打印一个未初始化的指针输出到一个字符。像这样......
printf("%c, *pointer);
很多时候,我得到一个随机字符,当我在程序中声明新变量时,字符输出会发生变化。现在,我运行程序,程序崩溃后才能输入指针所指向的字符。是什么导致程序崩溃?
我检查了内存地址值,它的值类似于2147880420或其他东西。
我是编程的菜鸟,我刚开始学习指针,我只是不明白导致程序崩溃的原因。
没有仇恨或者BS喜欢“不要这样做,这是愚蠢的”,我正在尝试和学习,并希望理解。
答案 0 :(得分:3)
当指针未初始化时,它指向无效的地址。当您尝试访问它指向的对象时,程序崩溃。这是可以预期的。
答案 1 :(得分:0)
你忘记了结束语:
你有:
printf("%c, *pointer);
而不是:
printf("%c", *pointer);
(如上所述,这可能是问题的错字,哎呀)
每当你对未初始化的变量做任何事情时,你都会得到未定义的结果,因为你指的是一个随机的内存块,从0到白宫的红色电话号码到生命的秘密,宇宙和一切。