未初始化的指针与空指针

指针使用前先被初始化指向一块特定的内存地址。如果不这样做,指针可能会指向任何位置,从而导致不愉快的后果,比如覆盖了其他变量的值,,或程序崩溃,为避免

此类事故或其他不良后果,应该先养成使用指针前初始化。

可以使用NULL这个C++特殊值来标记没被初始化的指针。每新建一个指针,你应该先将它的设置为NULL,这样可以方便以后检查

int *p_int = NULL;
//可能设置,也可能不设置p_int的代码
if(p_int != NULL)
{
     *p_int = 2;
}
时间: 2024-11-10 01:05:04

未初始化的指针与空指针的相关文章

DSP开发中遇到的问题 - 类指针未初始化后果

收到RECEIVE_REQ_MSG消息时会执行下面的代码,这里因为某种原因m_receiverSlaverController的值仍为NULL,并没有指向具体的CReceiverSlaverController类.执行到ReceiveHandler函数时,在ReceiveHandler函数中,会通过CReceiverSlaverController类的成员变量m_measurementAgent(类型为Agent类)调用Agent类的成员函数handleMessage,然后在ReceiveHan

C++中指针未初始化的问题

源代码: IntList::IntList(int numVals , int val ) { if (numVals>0){ numberValues=numVals; values=new int[numVals]; for(int i=0;i<numVals;++i){ values[i]=val; } } else numberValues=0; } IntList::IntList(const IntList &il) { numberValues=il.size(); if

初始化char指针--赋值和strcpy() 本质区别【转】

原文地址:http://hi.baidu.com/todaygoodhj/item/0500b341bf2832e3bdf45180 使用常量字符串初始化char指针,或者使用strcpy复制,从语法上我觉得都是可以的.但是,在这个例子中选择了后者,我觉得是有其他考虑的.因为,ctermid_name是全局的,可能用来传送数据,将str指向这个地址,可能会和其他的函数同步一个内存变量:而使用常量初始化:str="/dev/tty",那么系统会分配地址,这样str的地址是随机的. 个人认

C语言指针2(空指针,野指针)

//最近,有朋友开玩笑问 int *p  *是指针还是p是指针还是*p是指针,当然了,知道的都知道p是指针 //野指针----->>>指没有指向一个地址的指针(指针指向地址请参考上一篇文章) //空指针---->>指向空(null)的指针就是空指针 //指针的其他用法,指针可以指向指针,指针可以进行+ - * /运算 /* 特别注意,各个编译器都不相同,这里有一种错误写法,如: int *p,int a=10,b=20; p=&b; *p = &a;    

Oracle:ORA-24324: 未初始化服务句柄 ORA-01090: 正在关闭 - 不允许连接

1.sqlplus/nolog 2.SQL> conn / as sysdba已连接到空闲例程.3.SQL> shutdown abortORACLE 例程已经关闭.4.SQL> startupORACLE 例程已经启动. Total System Global Area  591396864 bytesFixed Size                  1250308 bytesVariable Size             226495484 bytesDatabase Bu

Exchange2010 OutLook Web App未初始化

故障现象 安装好Exchange 2010后,登录OWA出现提示"Outlook Web App 未初始化.如果问题仍然存在,请与技术支持人员联系.The Microsoft Exchange Active Directory Topology service on serverlocalhost did not return any suitable domain controllers."的错误. 故障原因 出现此故障是因为Exchange服务器上IIS未启用相关身份验证方式的原因

[整理]定义但未初始化赋值的局部变量与OXCCCCCCCC

开发环境 : win7 32bit ,VS2010,先看一段C代码: #include <stdio.h> int main(){ int x; //-858993460 printf("%d",x); //弹出Debug Error对话框 //x=func1(); getchar(); return 0; } int func1(){ //如果被调用,返回 -858993460 } 在Debug模式下,x在定义的同时被默认初始化赋值为-858993460,什么情况? 原来

java 小程序查看器 启动:未初始化小程序 解决方法

欢迎大家转载.为保留作者成果,转载请注明出处,http://blog.csdn.net/netluoriver,有些文件在资源中也能够下载.假设你没有积分.能够联系我索要! 在执行java程序的时候突然出现启动:未初始化小程序,  百度了一大堆资料都没有解决方式.但程序还是要用啊.依照又一次建立project的步骤又一次来吧.总之肯定是某个地方出现了错误! 依据多次尝试最终找到了解决方法.不知道你们的和我的是不是相同的原因引起的.方法例如以下: 1.右击project----属性,如图: 2.依

定义变量时未初始化赋值的问题

变量定义时未初始化,导致生命周期结束后,重新定义变量时,仍然保存有之前的数据,或者数据为内存中的随机值. 如下代码: #include <iostream> using namespace std; typedef struct s_xy { int x; int y; } s_xy; int main() { // your code goes here for(int i = 0; i < 3; ++i) { s_xy point; volatile int num; if(1 ==