我声明的返回指针类型的函数 PCHAR abc();提示returning address of local variable or temporary警告

PCHARabc(){charsys[256];GetSystemDirectory[sys,256];returnsys;}我知道警告意思是返回局部变量的地址存在风险但... PCHAR abc()
{
char sys[256];
GetSystemDirectory[sys,256];
return sys;
}
我知道警告意思是返回局部变量的地址存在风险 但是如何改正呢?
展开
 我来答
百度网友525d050fc
2011-10-26 · 超过21用户采纳过TA的回答
知道答主
回答量:76
采纳率:100%
帮助的人:66.5万
展开全部
肯定存在风险啊,作用域不同啊。
解决方法:
1,把 char sys[256]声明为全局的变量
2,改为 char *sys = (char*)malloc(sizeof(char)*256);
wanfustudio
2011-10-26 · TA获得超过1万个赞
知道大有可为答主
回答量:5513
采纳率:100%
帮助的人:3753万
展开全部
把这个char sys[256];挪到函数外面去,变成全局变量就可以了

或者动态分配内存也可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yayadawa
2011-10-26 · 超过30用户采纳过TA的回答
知道答主
回答量:153
采纳率:100%
帮助的人:71.6万
展开全部
会不会是因为你的这个代码,本身实现的功能和你所想像的有些出入!
我建议你再仔细看看你要完成的功能
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式