设为首页 加入收藏

TOP

7.13 常见问题及解答
2013-10-07 01:12:14 来源: 作者: 【 】 浏览:76
Tags:7.13 常见问题 解答

7.13  常见问题及解答

1.指针可以在初始化前使用吗?

解答:如果指针未初始化,则指针变量存储的是随意的数值。因此,直接使用可能将导致不可预知的后果。例如,有可能破坏其他存储单元的内容;也有可能破坏代码区的代码。

2.内存泄露是怎么产生的?

解答:当给指针分配空间后,如果不再使用必须释放。C++(www.cppentry.com)没有自动释放内存空间的能力,如果不释放将使得这些空间不能再被使用,处于游离状态,从而出现内存的泄漏。如果用malloc申请,这必须用free释放;如果用new分配,这需用delete来释放。

3.使用被释放的指针有何风险?

解答:当指针被释放,或生命期结束后(例如,在函数内给指针申请空间,从函数返回后,所指内存单元将被释放),继续使用它是危险的,因为所指向的内存单元已经被标记为释放,则系统可能将它再次分配给其他对象。但是,指针的值并没有被清空,这意味着仍然可以访问到该内存单元。所以,再次访问将破坏其他对象的内容。好的习惯是显式地将指针置空,使用前判空。

4.malloc/free和new/delete可以混用吗?

解答:两者完全不同,前者是函数,后者是运算符,不可以混用,必须配对使用。

5.可以用"int *p,q"形式来声明两个指针吗?

解答:由于*只作用到最近的变量。所以这将定义一个指针,一个整型变量,而不是两个指针。

6.整型常数可以直接赋给指针吗?

解答:虽然指针是无符号整型,但除0外,不能直接将任何整型常数赋给它。

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇7.5.1 算术运算 下一篇7.10 指针的命名规范

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: