C:关于返回值
来源:互联网 发布:淘宝联盟会员等级 编辑:程序博客网 时间:2024/05/22 17:03
典型错例:
char * func()
{
char a[100];
strcpy(a,"****");
return a;
}
void main()
{
char b[100];
strcpy(b,func());
printf("%s",b);
}
b不可能****,因为a 是局部变量,作用域只在func()内;
正确的做法推荐如下:
char * func(char *b)
{
strcpy(b,"****");
return b;
}
void main()
{
char *b;
b=(char *)malloc(sizeof(char)*100);
printf("%s",func(b);
free(b);
}
即可,上面是对内存地址的操作,把分配好的内存丢进去,随函数怎么处理。如没有返回值,结果是一样的。
最后,不要忘了释放内存,否则容易造成内存泄漏。
- C:关于返回值
- 关于c中&的返回值类型
- 关于C语言函数返回值问题
- C语言中关于scanf()函数返回值问题
- 关于C 指针作为返回值的问题
- 【语言-C++】关于CString 函数GetLength()返回值等于0
- c语言中关于局部变量的返回值
- 关于c语言中返回值和返回指针的问题。
- 关于fork()返回值
- 关于fork()返回值
- 关于fork()返回值
- 关于fork()返回值
- 关于fork()返回值
- 关于fork()返回值
- 关于fork()返回值
- 关于fork()返回值
- 关于return返回值
- 关于fork()返回值
- phpMyAdmin的安装小问题
- 2007年第12周最热网友收藏
- VC使用ADO控件的代码
- JSF自定义组件之三 JSF实现-Tag
- C和WIN32 API 的五子棋 程序
- C:关于返回值
- Java程序的国际化: Java资源文件
- Delphi中图片灰色的问题
- Google code jam 2008 Round 1A(c.Numbers)题解
- 编译程序链接错误LNK2001
- 关注
- 快速排序原理
- C语言程序编译的内存分配,堆与栈的区别
- 东方朔