c语言的问题 警告 1 warning C4172: 返回局部变量或临时变量的地址

//ᄡᅮᄎ￳ᅪᅦᄚ￉ᄒ... //ᄡᅮᄎ￳ᅪᅦᄚ￉ᄒᄈ�ᅱᄌᄊ뜌ᅱᄋᄎ￳ᅨᅮ￐ᅲᅱᄋ
//eg:src:b.xml;pro_DeleteChar_Rev(b.xml,'.')
//out:xml
const char* __pro_DeleteChar_Rev(char buf[], const char str_Delete)
{
const char* u8buf[128];strcpy((char*)u8buf, (char*)buf);
__strrev((char*)u8buf);
strchr((char*)u8buf, str_Delete)[0] = '\0';
__strrev((char*)u8buf);
return (char*)u8buf;
}//指针查找存在问题

警告 1 warning C4172: 返回局部变量或临时变量的地址 d:\suball\subs\europe\benz\src\app\command_addfunc.c 119
RT 这个怎么优化
展开
 我来答
binglink
2012-05-07 · TA获得超过1101个赞
知道小有建树答主
回答量:639
采纳率:0%
帮助的人:462万
展开全部
return (char*)u8buf; 因为 u8buf是局部变量, 出函数体后, 变量占用的空间就被释放了, 你把u8buf地址返回 会有警告的.

另外这个定义const char* u8buf[128]; 我不知你是不是这样想的, 这是定义了一个指针数组而不是字符数组, u8buf 是可以放128个指针的数组.
quepy
2012-05-07 · 超过23用户采纳过TA的回答
知道答主
回答量:73
采纳率:0%
帮助的人:39.8万
展开全部
在函数体内new一个内存区域,返回此指针,并在函数外部delete。
或者:
在函数调用前申请内存(动态、静态均可),将此指针作为函数参数传入。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
草根英雄1
2012-05-07 · TA获得超过409个赞
知道小有建树答主
回答量:379
采纳率:0%
帮助的人:232万
展开全部
u8buf,是指针,指向一个[128]大小的字符串,这样强转之后传入strcpy已经会导致崩溃了
char* u8buf;u8buf malloc();传出指针需要自行销毁
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式