2 wojiaoweide wojiaoweide 于 2016.01.15 08:57 提问

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

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

7个回答

yamizZ
yamizZ   2016.01.15 16:12

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

CSDNXIAON
CSDNXIAON   2016.01.15 08:59

请帮忙看下这个问题怎么解决
Repeater问题。知道的麻烦帮忙解决下
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

YXTS122
YXTS122   2016.01.15 09:40

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

enpterexpress
enpterexpress   2016.01.15 09:56

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

YXTS122
YXTS122   2016.01.15 10:11

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

wojiaoweide
wojiaoweide 回复YXTS122: 原因呢
接近 2 年之前 回复
wojiaoweide
wojiaoweide 回复YXTS122: 原因呢
接近 2 年之前 回复
wojiaoweide
wojiaoweide 回复YXTS122: 原因呢
接近 2 年之前 回复
wojiaoweide
wojiaoweide 回复YXTS122: 原因呢
接近 2 年之前 回复
wojiaoweide
wojiaoweide 回复YXTS122: 原因呢
接近 2 年之前 回复
qq_23363875
qq_23363875   2016.01.15 11:24

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

YXTS122
YXTS122   2016.01.18 17:28

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!