关于数组作为返回值的问题!请详细些!
下列三种情况,结果不同,原因在哪呢?
情况一:
1、在函数中定义一个数组buf[1024];
char *str()
{
char buf[1024] = "abcdefg";
//或者char *buf = "abcdefg";
return buf;
}
int main()
{
char *a = NULL;
a = str();
printf("%s\n", a);
return 0;
}
结果显示:abcdefg
2、在函数中定义个数组指针;
char *str()
{
char buf[] = "abcdefg";
return buf;
}
int main()
{
char *a = NULL;
a = str();
printf("%s\n", a);
return 0;
}
结果显示:乱码
[解决办法]
http://blog.csdn.net/zhongguoren666/article/details/7000112
这里讲的可能比你想要的详细~
[解决办法]