C语言重点解剖第26课笔记

文章讨论了指针的合法性无法验证,尤其是野指针;建议未使用的指针设为NULL;函数内验证指针合法性通常通过检查是否为NULL;自定义函数传参时不应依赖assert检测NULL,因为它仅在调试模式有效;指针越界不一定引发错误;内存泄漏在程序退出后不再存在,但对于持续运行的程序是个问题;malloc分配的空间通常大于请求大小,因此大内存应动态分配,小内存可考虑栈上创建。
摘要由CSDN通过智能技术生成

1.指针如果有具体的指向,包括野指针,对应的合法性,我们是无法验证的。

2.所有的指针如果没有被直接使用,必须设置为NULL。

3.在函数内部,要验证指针的合法性,本质上是验证指针!=NULL。

4.自定义函数传入指针时不建议使用assert来检测,原因1:无法传入一个NULL指针。

原因2:只在debug下起作用。

5.指针越界不一定会报错。

6.程序退出之后内存泄漏问题就不存在了。

但是永远不会退出的程序,最害怕内存泄漏(操作系统,杀毒软件,服务器程序)。

7.用malloc申请空间,实际分配的空间比用户申请的空间大。同一种编译器,在同一种C语言标准下,多出来的空间是固定的。所以,如果要申请大的空间,建议使用动态内存开辟,如果申请小空间,建议在栈上开辟数组。

  • 19
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数九天有一个秘密

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值