美文网首页想法
为什么指针声明必须初始化

为什么指针声明必须初始化

作者: HowardVeen | 来源:发表于2019-05-07 23:47 被阅读0次

    举一个例子,int  *a;

    中间若干语句之后执行

    *a =1;

    请问这样运行之后程序会出现什么结果,很多人都认为a这个指针最后指向了1,但实际上并不是,如果你运气好,给你分配一个空地址,运气不好,程序直接崩溃,会提示你内存错误。也就是,你这些程序根本就没有指向内存。为什么呢,因为你首先声明了一个指针,但是没有初始化就赋值了,这是不合法的,没有初始化的情况下,a指向哪里完全由操作系统决定,如果操作系统的机制不够成熟,那么这就是一个野指针,指向了一块非法内存地址。所以,一定要初始化,否则后患无穷,怎么初始化呢,你可以初始化为Null,也可以用mesmet,初始化为Null最起码给了一个合法的空地址。说到这里,Nul指针是不能解引用的,因为它没有指向任何地址。

    为什么指针声明必须初始化

    相关文章

      网友评论

        本文标题:为什么指针声明必须初始化

        本文链接:https://www.haomeiwen.com/subject/jytpoqtx.html