wojiaoweide
Dwyane_Coding
采纳率40%
2016-01-15 00:57 阅读 1.4k

帮忙解决下c的问题。谢谢。

内容看下图。求大神说下下面四到题?。。。。c基础。。。。。 图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

6条回答 默认 最新

  • yamizZ Yummy? 2016-01-15 08:12

    其实这四道题是考察堆内存和栈内存的。
    堆内存的生存周期为只要不用free()释放,它就一直存在,很容易造成内存泄漏;而栈上的空间是自动分配自动回收的,所以栈内存的生存周期只在函数内,运行完便不存在了。知道这些,那四道题就好理解了。如果还不明白,可以查查内存分配的一些知识。我就只说一下第一题,后面的应就懂了。
    第一道题:GetMemory()中的指针变量p用malloc()函数动态申请了空间,但由于GetMemory()这个函数无返回值,所以它并不能传递动态内存,Test函数中str一直都是NULL。strcpy函数将会使程序崩溃,也就出现段错误啦。

    点赞 1 评论 复制链接分享
  • YXTS122 YXTS122 2016-01-15 01:40

    看看。。。。。。。。。。。。。。。。。

    点赞 评论 复制链接分享
  • enpterexpress 把分全给哥 2016-01-15 01:56

    那不是有答案么,想仔细一点可以直接搜索错误啊

    点赞 评论 复制链接分享
  • YXTS122 YXTS122 2016-01-15 02:11

    图片说明
    图片说明
    图片说明
    图片说明

    点赞 评论 复制链接分享
  • qq_23363875 小壹风 2016-01-15 03:24

    你可以自己在将代码运行一遍,不就清楚了。。。如果想知道原因,网上搜索就可以了

    点赞 评论 复制链接分享
  • YXTS122 YXTS122 2016-01-18 09:28

    char *p="hello world";
    return p;
    只有指针才能返回,不能返回数组名的

    点赞 评论 复制链接分享

相关推荐