怎么理解这句语句??进来看下

agwtpcbox1 2009-08-10 04:24:28
今天看了一个程序有这样一个地方不知道它要表达的是什么意思
请帮我看下
谢谢
int * pg_sz;
......

if(pg_sz) //这句是要干什么的?
*pg_sz = page_size;
...全文
87 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
agwtpcbox1 2009-08-10
  • 打赏
  • 举报
回复

谢谢8楼的jennifergiant
我提的问题都明白了
jennifergiant 2009-08-10
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 agwtpcbox1 的回复:]
引用 3 楼 mengfanfeigogo 的回复:
判断指针是否已经指向了一块内存,以防止内存泄漏。比如如果这个指针已经指向了堆中的一块空间,如果现在把该指针赋值成指向另一空间,那么这块堆中的空间无法释放,造成泄漏



定义pg_sz指针时是有给它分配地址的吧
你的意思是不是说如果我在程序中加了一个一句比如:
pg_sz=flag;//flag是另外一个指针
那pg_sz就指向了flag原本指向的地址了
而原来pg_sz所指向的地址就无法释放了也就造成泄漏了。。
是这样理解吗??
要是这样的话
那程序中不就最好不要这种语句
不然容易造成内存的浪费??
这个是另外的问题了
刚好想到的
能指导下吗
再次谢谢了

[/Quote]

是这么理解的,但是这种语句只是防止出现这种错误的判断,而内存泄漏问题不是通过尽量不写这种语句来避免的,而是你自已在使用malloc或是new时要注意内存释放,配对的使用free或是delete
agwtpcbox1 2009-08-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 mengfanfeigogo 的回复:]
判断指针是否已经指向了一块内存,以防止内存泄漏。比如如果这个指针已经指向了堆中的一块空间,如果现在把该指针赋值成指向另一空间,那么这块堆中的空间无法释放,造成泄漏
[/Quote]


定义pg_sz指针时是有给它分配地址的吧
你的意思是不是说如果我在程序中加了一个一句比如:
pg_sz=flag;//flag是另外一个指针
那pg_sz就指向了flag原本指向的地址了
而原来pg_sz所指向的地址就无法释放了也就造成泄漏了。。
是这样理解吗??
要是这样的话
那程序中不就最好不要这种语句
不然容易造成内存的浪费??
这个是另外的问题了
刚好想到的
能指导下吗
再次谢谢了
asksgp 2009-08-10
  • 打赏
  • 举报
回复
如果指针不是空,就执行。。。
raley29 2009-08-10
  • 打赏
  • 举报
回复
指向空地址
[Quote=引用 4 楼 agwtpcbox1 的回复:]
指针是否为空
是什么意思
是内容为空还是指向空地址
呵呵
3楼的我得好好理解下
[/Quote]
agwtpcbox1 2009-08-10
  • 打赏
  • 举报
回复
指针是否为空
是什么意思
是内容为空还是指向空地址
呵呵
3楼的我得好好理解下
mengfanfeigogo 2009-08-10
  • 打赏
  • 举报
回复
判断指针是否已经指向了一块内存,以防止内存泄漏。比如如果这个指针已经指向了堆中的一块空间,如果现在把该指针赋值成指向另一空间,那么这块堆中的空间无法释放,造成泄漏
十八道胡同 2009-08-10
  • 打赏
  • 举报
回复
int * pg_sz;
......

if(pg_sz) //这句是要干什么的?
------------
判断int *的指针是否为空
nicotia 2009-08-10
  • 打赏
  • 举报
回复
判断指针是否为空

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧