设为首页 收藏本站
查看: 1540|回复: 0

[Cloudstack] 四道经典C语言指针试题

[复制链接]

尚未签到

发表于 2015-10-14 08:47:45 | 显示全部楼层 |阅读模式


试题一:
  
  void GetMemory( char *p )
  {
  p = (char *) malloc( 100 );
  }
  
  void Test( void )
  {
  char *str = NULL;
  GetMemory( str );
  strcpy( str, "hello world" );
  printf( str );
  }
解答:
  本题中传入中GetMemory( char *p )函数的形参为字符串指针,在函数内部修改形参并不能真正的改变传入形参的值,执行完
  char *str = NULL;
  GetMemory( str );
  后的str仍然为NULL;
  
  存在内存泄露,打印为空
试题二:
  char *GetMemory( void )
  {
  char p[] = "hello world";
  return p;
  }
  
  void Test( void )
  {
  char *str = NULL;
  str = GetMemory();
  printf( str );
  }
解答:
  char p[] = "hello world";
  return p;
  p[]数组为函数内的局部自动变量,在函数返回后,内存已经被释放。这是许多程序员常犯的错误,其根源在于不理解变量的生存期。
试题三:
  void GetMemory( char **p, int num )
  {
  *p = (char *) malloc( num );
  }
  
  void Test( void )
  {
  char *str = NULL;
  GetMemory( &str, 100 );
  strcpy( str, "hello" );
  printf( str );
  }
解答:
  存在2处问题:
  本题中的Test函数中未对malloc的内存进行释放
  本题中的GetMemory避免了试题一的问题,传入GetMemory的参数为字符串指针的指针,但是在GetMemory中执行申请内存及赋值语句
  *p = (char *) malloc( num );
  后未判断内存是否申请成功,应加上:
  if ( *p == NULL )
  {
  ...//进行申请内存失败处理
  }
试题四:
  void Test( void )
  {
  char *str = (char *) malloc( 100 );
  strcpy( str, "hello" );
  free( str );
  ... //省略的其它语句
  }
解答:
  存在2处问题:
  试题四存在与试题三同样的问题,在执行char *str = (char *) malloc(100);
  后未进行内存是否申请成功的判断
  另外,在free(str)后未置str为空,导致可能变成一个“野”指针,应加上:
  str = NULL;
更多0上一篇:面试点:C语言经典面试题(C语言面试题分析之五)
下一篇:2011年上半年5月份系统分析师上午试题答案(1)
查看评论2楼 百斯特数据 2013-05-23 12:58发表 [回复] DSC0000.jpg 可以深入研究研究。1楼 icesea137 2013-01-17 11:10发表 [回复] DSC0001.jpg 拜托,后边两道没有给出结果啊,只是说有问题,题目本来目的不是让你找问题的,求解答!发表评论

  • 用 户 名:
  • u012412392


  • 评论内容:
  • DSC0002.gif

      
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场核心技术类目
全部主题 Java VPN Android iOS ERP IE10 Eclipse CRM JavaScript UbuntuNFC WAP jQuery 数据库 BI HTML5 Spring Apache Hadoop .NET API HTMLSDK IIS Fedora XML LBS Unity Splashtop UML components WindowsMobileRails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase云计算 iOS6 Rackspace WebApp SpringSide Maemo Compuware 大数据 aptechPerl Tornado Ruby Hibernate ThinkPHP Spark HBase Pure Solr AngularCloudFoundry Redis Scala Django Bootstrap
    个人资料

    DSC0003.jpg
    littletigerat DSC0004.gif DSC0005.gif

    • 访问:541477次
    • 积分:8780分
    • 排名:第393名


    • 原创:291篇
    • 转载:8篇
    • 译文:0篇
    • 评论:576条


    文章搜索

    博客专栏

    DSC0006.jpg 解析系统架构设计师试题  文章:30篇
    阅读:36077 DSC0007.jpg 解析系统分析师试题  文章:29篇
    阅读:128690

    文章分类


  • 系统架构师(38)
  • 项目管理(33)
  • Android(23)
  • C/C++(27)
  • 魅力思维(37)
  • Database(11)
  • GPS(5)
  • J2ME(2)
  • Java(12)
  • SQLite3(3)
  • Linux(19)
  • Window(3)
  • VC开发(3)
  • 安装程序制作(1)
  • 《深度探索c++对象模型》学习笔记(0)
  • 互联网(10)
  • 协议分析(5)
  • 开发工具(2)
  • 学习与思考(80)
  • 手机开发(25)
  • 新技术(10)
  • 手机行业(5)
  • 源码学习(11)
  • 激情创业(5)
  • 点滴生活(24)
  • 生活百味(49)
  • 百科解答(9)
  • 程序人生(57)
  • 系统分析(36)
  • 职场风云(25)
  • 计算机软考(121)
  • 设计模式(0)
  • 网络编程框架(1)
  • 内存管理(0)
  • 程序设计语言(1)
  • 计算机系统(2)
  • 无线通信(0)

    文章存档


  • 2013年12月(2)
  • 2013年11月(1)
  • 2013年07月(3)
  • 2013年06月(7)
  • 2013年05月(1)展开

    阅读排行


  • 程序员很少上《非诚勿扰》电视节目相亲之分析(46014)
  • adb root错误信息adbd cannot run as root in productionbuilds问题解决(13179)
  • (程序员情感三部曲之一)找个程序员做老公,挺好!(11017)
  • 2009年下半年11月份信息系统项目管理师上午试题答案(分析与解答)(第5次修订修订时间:2010年03月14日02时02分)(10323)
  • (程序员情感三部曲之二)程序员如何找女朋友(9651)
  • Android版本与Linux内核版本的关系(8715)
  • 裸考—歪理邪说通过系统分析师考试之五(分析2010上半年系统分析师上午试题21-25题)(8712)
  • 裸考—歪理邪说解析系统分析师上午考试试题之七(分析2010上半年系统分析师上午试题32-36题)(7902)
  • 成为江苏卫视《一站到底》节目站神之策略(7841)
  • 裸考—歪理邪说通过系统分析师考试之四(分析2010上半年系统分析师上午试题16-20题)(7782)

    评论排行


  • 程序员很少上《非诚勿扰》电视节目相亲之分析(217)
  • (程序员情感三部曲之一)找个程序员做老公,挺好!(50)
  • 2009年下半年11月份信息系统项目管理师上午试题答案(分析与解答)(第5次修订修订时间:2010年03月14日02时02分)(20)
  • 一个技术工作者的四大核心价值理念(16)
  • (程序员情感三部曲之二)程序员如何找女朋友(16)
  • (程序员情感三部曲之三)程序员与女朋友相处之道(15)
  • 考考码农们的想象能力(12)
  • adb root错误信息adbd cannot run as root in productionbuilds问题解决(11)
  • 2011年上半年登陆美国市场上市科技企业知多少(10)
  • 歪理邪说理论之2012年系统架构师软考成绩(8)

    推荐文章

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-126462-1-1.html 上篇帖子: C#开源资源超级大汇总 下篇帖子: linux下 C编程改变输出字体颜色
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表