return不能返回局部变量的地址
例:
#include <stdio.h>
char*func()
{
char src[100] = "hello world";
return src;
}
{
char *temp = func();
printf("temp = %s\n",temp);
return 0;
}
运行结果:
原因:因为函数在调用完后会释放空间,return在返回的时候函数同时也在释放,所以 只返回了前面几个,后面的空间就被释放了,所以输出了乱码。