LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 938|回复: 7

指针是否一定要初始化?

[复制链接]
发表于 2004-6-1 23:45:11 | 显示全部楼层 |阅读模式
我在rh9下有时候没有初始化也一样能用。
发表于 2004-6-2 01:13:13 | 显示全部楼层
我用Debian,很容易Segment Fault
觉得最传统的方法应当初始化,至少要在后面给一个值的
发表于 2004-6-2 06:59:26 | 显示全部楼层
[PHP]
void Function()
{
        int *p;
        int val;
        val=*p; //Bad enough
        *p=val; //Much worse
}


[/PHP]
指针P从未被赋值,因此它含有的数据完全可能是杂乱的,所以看val=*p;这句就清楚了吧
发表于 2004-6-2 08:08:18 | 显示全部楼层
语法上没有要求必须初始化,但初始化后再使用指针是个好习惯。
 楼主| 发表于 2004-6-2 14:35:43 | 显示全部楼层
:thank all of U.
进一步了解了指针了
发表于 2004-6-2 19:08:22 | 显示全部楼层
如果不初始化,指针指向未知的地址,如果读写,会得到不可预测的数据或破坏未知的内存中的数据(或读写被操作系统禁止),引发错误。

因此必须初始化。
发表于 2004-6-2 19:11:28 | 显示全部楼层
其实不单是指针,其它类型的变量最好在声明时就初始化,设有正确的初始化常常是程序的错误来源之一。
发表于 2004-6-4 11:38:45 | 显示全部楼层
init 是个很好的习惯
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表