记录以下C++中空指针和野指针

空指针

即指针变量指向内存中标号为0的空间,一般用来初始化指针变量。

int* p = NULL;

需要注意的是:
空指针指向的内存是不可访问的。即在使用时候首先要对其赋值。才可以使用。

	int* p = NULL;
	int k[] = { 1,2,3 };
	int n = 1;
	p = &n;   //对其重新赋值,让它指向n的地址。
	//p = k;   因为数组的名称本身就是首地址。所以不用写取址符
	cout << *p << endl;

否则会报错误。原因是因为空指针指向的是编号为0的空间。而编号内存0-255为系统占用内存,是不允许用户访问的。

野指针

即指向非法内存空间的指针。对其操作会报错。在写程序的过程中一定要格外注意。


	//野指针  指针指向非法的内存空间
	int* a = (int* )0x1100;
	//cout << *a << endl;  报错  

原因是因为这个地址是随便写的,并不是我们申请的。所以会报错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值