LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: aishen944

c语言新手-关于函数返回值问题

[复制链接]
发表于 2006-1-17 00:58:30 | 显示全部楼层
一般你要传东西出来,你的函数就接受一个缓冲区的指针作参数吧。然后调用者自己开缓冲区,自己释放,你也不用管它的缓冲区是在堆上还是在栈上。如:
int foo(char * bar)
{
      //缓冲区检查等,省略。。。。
    strcpy(bar,"abcdefg");

    return 0;
}

调用方
char buf[100];

foo(buf);
这是在栈上分配,也可以用malloc()在堆上分配,不过要记得用free()。
回复 支持 反对

使用道具 举报

发表于 2006-1-17 15:20:06 | 显示全部楼层
支持sevenever的做法,这样好像不用考虑的那么多哦!!

不过最好是不是可以传一个长度过来呢!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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