一些疑惑,如题:

[复制链接]
查看11 | 回复2 | 2013-5-19 21:23:19 | 显示全部楼层 |阅读模式
char *getstring(void)函数中的p数组是局部变量,在栈空间。在函数调用结束后,局部变量销毁。但是这时函数返回值却是指向销毁内存的指针,这个指针无疑是野指针。千万不要返回局部变量的地址。static就变成局部静态了。生存期是整个程序执行期间。所以这时候返回它的指针式可以读取这块空间的。...
回复

使用道具 举报

千问 | 2013-5-19 21:23:19 | 显示全部楼层
因为你那个getstring函数里面那个char p[]是个局部变量,这个函数运行完就会被系统回收,但是声明为static表明是一个静态的,系统在主程序没结束是不会去销毁它的。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行