社区
C语言
帖子详情
使用断言检查内存是否分配成功是危险的,为什么呢?
iamlwblwblwb
2012-01-20 11:58:33
看C与C指针是,说“使用断言检查内存是否分配成功是危险的”,请各位指点为什么呢?谢谢!
...全文
220
7
打赏
收藏
使用断言检查内存是否分配成功是危险的,为什么呢?
看C与C指针是,说“使用断言检查内存是否分配成功是危险的”,请各位指点为什么呢?谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jackyjkchen
2012-01-20
打赏
举报
回复
个人觉得无论是业务逻辑还是通用库,都不用检查指针有效性
第一,即便检查你也只能检查空指针等少数几个特殊值,任意值的野指针检查不了
第二,如果你总是犯这种内存管理上的错误(频率超过一个月3次),对不起,您不适合使用C语言
zhq445078388
2012-01-20
打赏
举报
回复
因为正式发布版是去掉断言的。。。那些是用于调试输出的。。
飞天御剑流
2012-01-20
打赏
举报
回复
因为断言一般在release版本中会被去掉,这时候就没有检查作用了。
AnYidan
2012-01-20
打赏
举报
回复
[Quote=引用 1 楼 supermegaboy 的回复:]
因为断言一般在release版本中会被去掉,这时候就没有检查作用了。
[/Quote]
++
iamlwblwblwb
2012-01-20
打赏
举报
回复
感谢以上几位,受教了,谢谢
游戏设计师
2012-01-20
打赏
举报
回复
一般断言是在DEBUG中调试用的,不过你可以自己写一个异常监控和查找库,在release版本中使用~
一般把这种类似断言的检测出现问题时候抛出异常或者写入log~
内存
管理清晰版
了解
内存
分配
,精通编程必经之路,对于计算机
内存
分配
,编写更高效的程序,提供强大的支持
CC++嵌入式面试大全.pdf
CC++嵌入式面试大全.pdf
C语言-动态
内存
分配
讲解
我们在处理
内存
时,
内存
区域主要分为三块区域,分别为:栈区,堆区,静态区而我们经常
使用
的语句其实都是在栈区开辟空间的,如:int a;float b;char c;但是
使用
这样的声明,在栈区开辟空间时是有一定风险的存在风险:1.开辟出来的空间是固定的,不能进行具体字节大小的修改,所以可能浪费掉栈区的空间大小2.栈区空间开辟太大可能导致栈溢出因此,我们可以将一些东西存储在堆区中,堆区的空间是本身就存在的,我们要做的就是
分配
出来并利用这些空间,因此也叫做动态
内存
分配
。
易语言
内存
分配
与管理实战详解
为了综合运用前述知识,本节将以“学生信息管理系统”中的“Student”结构体为例,演示完整的
内存
分配
与初始化流程。首先定义一个包含姓名、学号、成绩的结构体:.结构体 学生信息.成员 姓名, 文本型, 64 ' 最长64字节.成员 学号, 整数型 ' 4字节.成员 成绩, 小数型 ' 8字节.成员
是否
通过, 逻辑型 ' 1字节.结束结构体根据易语言的
内存
对齐规则(通常为4字节对齐),各成员偏移如下:成员类型大小(字节)偏移地址姓名文本型(字节集)
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章