为什么函数不能返回本地数组?

时间:2013-05-21 21:50:31

标签: c function

char* f()
{
char s[100];
//....function body code
return s;
}

为什么不能这样写?

1 个答案:

答案 0 :(得分:4)

s是一个只存在于函数中的局部变量。

函数退出后,s不再存在,其内存将重新分配给程序的其他部分。

因此,您的函数返回一个指向随机无意义内存块的指针。