函数返回字符串
来源:互联网 发布:java最新面试题 编辑:程序博客网 时间:2024/05/16 17:48
//-------------------------------------------------------------分析------------------------------------------------------------------
char *fun()
{char s[10];
strcpy ( s , "abc " );
return s;
}
-----------
这个函数的问题就是所谓的返回 指向栈地址的指针
char s[10];局部变量是在函数体内声明的, 所以在退出函数时, 会自动销毁.返回指针s指向的是栈地址, 在函数退出后, 就成为无效指针.
//--------------------------------------------------------------------------------------------------------------------------------------
其实就是要返回一个有效的指针,尾部变量退出后就无效了。
那么一个函数如何返回一个字符串呢?
解决方法如下:
1.
char *fun()
{
static char s[10]; //
strcpy ( s , "abc " );
return s;
}
2.
使用分配的内存,地址是有效的
char *fun()
{
char* s = (char*)malloc(100, sizeof(char*) );
if (s)
strcpy ( s , "abc " );
return s;
} //那么在哪儿将返回的地址free掉
3. 也可以用全局变量
4.
将地址由入参传入
char* fun(char*s)
{
if (s)
strcpy(s, "abc ");
return s;
}
这种方式调用都要注意给s分配的大小是足够。
可以这样:
char* fun(char*s, int len)
{
if (s)
{
strncpy(s, "abc ", len-1);
s[len-1] = 0;
}
return s;
}
- 函数返回字符串
- shell函数返回字符串
- 函数如何返回字符串
- shell 函数返回字符串
- 从函数中返回字符串
- 字符串分割函数(返回数组)
- c语言函数返回字符串
- C 通过函数返回字符串
- C语言函数返回字符串
- Oracle 截取字符串函数 返回表类型
- shell函数返回字符串的方法
- 7.7 正确从函数返回字符串
- shell的函数返回一个字符串
- C++ 分割字符串函数,并且返回vector
- SHELL函数返回字符串的方法
- LINUX C语言中返回字符串函数
- 字符串分割函数并返回集合
- 关于函数返回字符串常量的问题
- 使用android的主题在应用中
- Linux下抓包工具tcpdump以及分析包的工具wireshark
- 二.从零学java:java开发环境
- lame音频压缩解码(一)Lame知识小解
- C函数
- 函数返回字符串
- SenchaTouch2中navigation下嵌入list无事件响应问题解决
- AxWindowsMediaPlayer的详细用法
- struts2基础知识
- 面向对象三大特点
- 修改gui 指示器
- java 串口操作环境搭建
- 在KEIL MDK下的uCOS-II的FL2440移植
- 汉字编码