c语言分段函数返回字符 c语言分段函数格式( 二 )


C语言中函数如何返回字符串?别听 楼上 的 瞎说,也 别 百度 了, 都是 错 的,我 告诉 你 正确 答案
函数 中 的 字符 串 在 函数 结束 的 时候 会 自动 被 释放 掉, 所以 即使 返回 char* 指向 的
也 就是 原 函数 字符串 的 地址, 访问 的 是 一个 系统 没有 分配 给 程序 的 内存 ,  虽然 编译器 不会 报错, 但 语法 绝对 是 错误 的,而且 你 不一定 能 得到 一个 正确 的 结果
三种 解决 方法:
1,struct ret { char a[100];}; 返回 一个 结构, 结构里面 包含 字符串
【c语言分段函数返回字符 c语言分段函数格式】2,char* ret = (char *)malloc(100 * sizeof (char));在 函数 里 开 一个 动态 的 字符串,这个 可以 返回,不过 动态 内存 需要 手动 free 掉
3, 这个 不是 c语言 了,调用 c++ 里面 的 string 类型,也是 最简单 的 办法,省心,安全
c语言函数返回字符串在time1()函数里 , char now[]是个在函数里声明的临时变量
函数返回 char * p之后 ,char now[]的空间就已经释放掉了
如果你想返回时间字符串
把char now[80]; 改成 char *now =(char *)malloc(sizeof(char)*80);
用malloc函数申请空间 , 函数返回之后空间就不会被释放掉了
VC++ 6.0编译通过
在C语言中,返回一个字符串的函数应该怎样定义要返回字符串 需要返回char*类型
需要注意的是 返回的字符串 不能是该函数的局部变量,否则会导致出错
可以是参数字符串,全局变量,静态局部变量,或者动态分配的内存
比如
char *my_str_cpy(char *d, char *s)
{
char *p=d;
while(*p++=*s++);
return d;//返回参数字符串 。
}
c语言分段函数返回字符的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言分段函数格式、c语言分段函数返回字符的信息别忘了在本站进行查找喔 。

推荐阅读