C语言函数返回值输出乱码
/*testing of string*/
#include<stdio.h>
#include<string.h>
char str[]="string-testing";
char *str2="copy-string";
char *str3="a_long_long_copy_string_test";
char* str_copy_test();
char* str_catch_test();
void main()
{ char* temp;
//temp=str_copy_test();
temp=str_catch_test();
printf("%s",temp);
}
/*test of strcpy(char *dst,char const* src)*/
char* str_copy_test()
{
//strcpy(str,str2);//str must be array;
strcpy(str,str3);//size of target larger then array;
return str;
}
/*test of string catch*/
char* str_catch_test()
{ char str[100]="string-testing";
strcat(str,str2);
printf("%s",str);
return str;
}
代码如上 在函数str_catch_test内部输出str时输出正常,但是主程序中返回str并把值赋值给temp;赋值后temp的值正常,但是执行printf输出语句输出时乱码。求助!!