设为首页收藏本站

编程十万个为什么,属于程序员的编程论坛

 找回密码
 5秒快速注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 8638|回复: 13

[C/C++每日一练] 一个关于内纯分配的问题

[复制链接]
发表于 2012-12-3 17:39:04 | 显示全部楼层 |阅读模式

题目中给了3个函数,分别是:
  1. 1、
  2. void GetMemory1(char * c)
  3. {
  4.         c = (char *)malloc(100);
  5. }

  6. 2、
  7. char * GetMemory2()
  8. {
  9.         char a[] = "Hello world";
  10.         return a;
  11. }

  12. 3、
  13. void GetMemory3(char ** c)
  14. {
  15.         *c = (char *)malloc(100);
  16. }

  17. int main ()
  18. {
  19.         char * a;
  20.         Getmemory1(a);

  21.         char * b = GetMemory2();

  22.         char * c;
  23.         Getmemory1(c);

  24.         strcpy(a, "Hello world");
  25.         strcpy(b, "Hello world");
  26.         strcpy(c, "Hello world");

  27.         return 0;
  28. }
复制代码
游客,如果您要查看本帖隐藏内容请回复

问,a b c分别出现什么结果,为什么?
发表于 2013-6-16 21:25:51 | 显示全部楼层
发表于 2013-6-21 16:38:56 | 显示全部楼层
let
me
see
see
发表于 2013-12-7 10:53:48 | 显示全部楼层
什么啊
回复

使用道具 举报

发表于 2014-2-13 15:31:04 | 显示全部楼层
给a分配了,大小为100的内存。
给b分配的内存可能是错误的,因为这个是函数中的局部变量。当函数运行完之后,局部变量就被销毁。则b现在指向的应该是爷指针。
c,这个函数是不是应该使用GetMemory3 ? 这样使用,GetMemory3(&c);这样将 变量 c指向了新分配的内存空间。
发表于 2014-3-15 22:11:28 | 显示全部楼层
指向指针的指针不太懂。
发表于 2014-3-17 22:20:34 掌上BcWhyBcWhy手机版 | 显示全部楼层
:P来自: iPhone客户端
发表于 2014-3-23 23:08:54 | 显示全部楼层
回复

使用道具 举报

发表于 2014-7-17 10:29:43 | 显示全部楼层
不太确定
回复

使用道具 举报

发表于 2014-10-6 23:42:51 | 显示全部楼层
ab指向未知内存
您需要登录后才可以回帖 登录 | 5秒快速注册

本版积分规则

关闭

BcWhy推荐上一条 /1 下一条

QQ|关于我们|最新帖子|小黑屋|手机版|编程十万个为什么 ( 粤ICP备16108587号-2  

GMT+8, 2017-6-24 18:38 , Processed in 0.238468 second(s), 32 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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