- 论坛徽章:
- 0
|
本帖最后由 googny 于 2012-04-27 11:25 编辑
函数里面定义的变量是局部变量,当把函数局部指针变量作为返回值的时候,这是一个典型的错误; (多谢大家的批评建议,我已经更正了)
但是小编在试验的时候,发现当要返回的局部变量是指针的时候,运行结果正常,所以小编在此贴出代码,向大家求教
linux下编译运行 win下暂时还没尝试。- 1 #include<stdio.h>
- 2 #include<string.h>
- 3
- 4 char * combine(char *str1,char *str2)
- 5 {
- 6 char str[1024];
- 7 char *p=str;
- 8
- 9 strcpy(str,str1);
- 10 strcat(str,str2);
- 11
- 12 return p;
- 13 }
- 14
- 15 int main()
- 16 {
- 17 char *q;
- 18
- 19 q= combine("hello","world");
- 20 //char *p=combine("hello","world");
- 21 printf("%s\n",q);
- 22 printf("%s\n",p);
- 23 return 0;
- 24 }
-
复制代码 问题在19行, 当输出q[],的时候,能正确显示。 小编觉得可能是我运行的程序太少,于是就添加了20行,但是结果还是显示正确。
百撕不得骑姐,于是就贴出来,供大家把玩。 |
|