社区
C语言
帖子详情
使用断言检查内存是否分配成功是危险的,为什么呢?
iamlwblwblwb
2012-01-20 11:58:33
看C与C指针是,说“使用断言检查内存是否分配成功是危险的”,请各位指点为什么呢?谢谢!
...全文
200
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.栈区空间开辟太大可能导致栈溢出因此,我们可以将一些东西存储在堆区中,堆区的空间是本身就存在的,我们要做的就是
分配
出来并利用这些空间,因此也叫做动态
内存
分配
。
你真的会用cudaMalloc吗?:剖析C语言下CUDA
内存
分配
的9个隐藏陷阱
掌握C语言CUDA的
内存
分配
关键技巧,避开常见错误。深入解析cudaMalloc
使用
场景、
内存
对齐、错误
检查
等9大陷阱,提升GPU程序稳定性与性能。适用于高性能计算与并行编程,值得收藏。
C语言
70,039
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章