免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: madcola
打印 上一主题 下一主题

来挑挑错.容易犯的很阿. [复制链接]

论坛徽章:
0
11 [报告]
发表于 2005-03-20 20:03 |只看该作者

来挑挑错.容易犯的很阿.

我发现好多人都不明所以

论坛徽章:
0
12 [报告]
发表于 2005-03-20 21:52 |只看该作者

来挑挑错.容易犯的很阿.

恩,,分配的内存没有获得.....
还往里copy数据,肯定会段错误的..

论坛徽章:
0
13 [报告]
发表于 2005-03-20 22:11 |只看该作者

来挑挑错.容易犯的很阿.

[quote=
mem没有拿到

[/quote]

为什么没有拿到阿?

论坛徽章:
0
14 [报告]
发表于 2005-03-20 22:23 |只看该作者

来挑挑错.容易犯的很阿.

原帖由 "madcola" 发表:


为什么没有拿到阿?

C语言传递参数是要把参数复制后再传递的。这个被复制的参数只在被调用的函数内有效,在函数返回后就被抛弃了。

论坛徽章:
0
15 [报告]
发表于 2005-03-21 09:38 |只看该作者

来挑挑错.容易犯的很阿.

按照楼主的函数风格到底该怎么改
我搞了半天还是Segmentation fault

void getMemory(char **p, unsigned int size)
{
*p = malloc(sizeof(char) * size);
}
int main()
{
char *p = NULL;
getMemory(p,10);
//strcpy(&p,"hello";
printf("p=%p\n",p);
return 0;
}

论坛徽章:
0
16 [报告]
发表于 2005-03-21 09:51 |只看该作者

来挑挑错.容易犯的很阿.

原帖由 "madcola" 发表:

#include <stdio.h>;
#include <stdlib.h>;
void getMemory(char *p, unsigned int size)
{
        p = (char*)malloc(sizeof(char) * size);
}
int main()
{
        char *p = NULL;
        getMemory(p,10);..........


  1. #include <stdio.h>;
  2. #include <stdlib.h>;
  3. void getMemory(char **p, unsigned int size)
  4. {
  5. *p = (char*)malloc(sizeof(char) * size);
  6. }
  7. int main()
  8. {
  9. char *p = NULL;
  10. getMemory(p,10);
  11. strcpy(p,"hello");
  12. return 0;
  13. }

复制代码


注意p是形参.
另外在这个程序里free与否并不重要,
但良好的习惯应该是free掉.

论坛徽章:
0
17 [报告]
发表于 2005-03-21 10:03 |只看该作者

来挑挑错.容易犯的很阿.

老兄
你的也是有错的

论坛徽章:
0
18 [报告]
发表于 2005-03-21 10:48 |只看该作者

来挑挑错.容易犯的很阿.

原帖由 "bleem1998" 发表:
老兄
你的也是有错的


getMemory(&p,10);

  

论坛徽章:
0
19 [报告]
发表于 2005-03-21 10:51 |只看该作者

来挑挑错.容易犯的很阿.

老兄。。。。
我想哭
你手头有gcc没
编译运行一下就知道了
其实我也是像你这样改的
但是想不通为什么会不行

论坛徽章:
0
20 [报告]
发表于 2005-03-21 11:11 |只看该作者

来挑挑错.容易犯的很阿.

局部变量导致内存泄漏,使用指向指针的指针即可。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP