函数体中声明的指针变量控制不了

背景:如图
在这里插入图片描述
函数体中声明了一个指针变量,遇到两个问题:
1.地址0x00000000,明显非控制的地址
2.下面测试给指针首地址赋值,赋值失败

原因:
所有的变量不赋初值的情况下,是空值,例如int char类的为0,指针的话就是NULL,所以UINT8_t *send_data;相当于UINT8_t *send_data=NULL
2.p=NULL: p 指向了一个地址为0的内存,NULL就是0x0。p=NULL后,p指向0x0这个地址。此处的地址,没有访问权限
3.当用new或者malloc申请了指针p,使用后delete或者free,这个时候必须将指针值设置为null,否则,p将成为一个非法指针,后续代码如果使用到该指针有可能会造成系统崩溃(内存不可以读不可写),或者,破坏自身有效内存数据(释放后,又在申请作为别的用途,恰巧系统分配了同一块内存)
原因:free(p)是只是将malloc申请的内存空间释放,在不改变free()函数的原型前提下是无法做到P=NULL的,P=NULL相当于空指针,不指向任何有效的对象。绝对不允许间接使用空指针,否则程序会得到毫无用处的结果或者全部是零的值,或者会突然停止。P=null,之后,p还是原来的类型的,不变的。
————————————————
参考链接:https://blog.csdn.net/henu1710252658/article/details/83046649

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值