是什么导致我的程序崩溃?

时间:2014-04-25 19:43:58

标签: c pointers crash runtime-error

我故意打印一个未初始化的指针输出到一个字符。像这样......

printf("%c, *pointer);

很多时候,我得到一个随机字符,当我在程序中声明新变量时,字符输出会发生变化。现在,我运行程序,程序崩溃后才能输入指针所指向的字符。是什么导致程序崩溃?

我检查了内存地址值,它的值类似于2147880420或其他东西。

我是编程的菜鸟,我刚开始学习指针,我只是不明白导致程序崩溃的原因。

没有仇恨或者BS喜欢“不要这样做,这是愚蠢的”,我正在尝试和学习,并希望理解。

2 个答案:

答案 0 :(得分:3)

当指针未初始化时,它指向无效的地址。当您尝试访问它指向的对象时,程序崩溃。这是可以预期的。

答案 1 :(得分:0)

你忘记了结束语:

你有:

printf("%c, *pointer);

而不是:

printf("%c", *pointer);

(如上所述,这可能是问题的错字,哎呀)

每当你对未初始化的变量做任何事情时,你都会得到未定义的结果,因为你指的是一个随机的内存块,从0到白宫的红色电话号码到生命的秘密,宇宙和一切。