local function definitions are illegal 错误如何解决程序如下

cuifeicxcfcy 2010-05-01 10:17:15
unsigned char *encode_invert(unsigned char *source,int len)
{
unsigned char astrEcode[10240]={0};
const unsigned char i_UserKey[5]={0xab,0xbc,0xcd,0xde,0xef};
if(len>0)
{
for(int i=1;i<=len;i++)
{
astrEcode[i-1]=source[i-1]^(i+i_UserKey[i%5]);
}
}
return &astrEcode[0];
}
...全文
125 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
arong1234 2010-05-06
  • 打赏
  • 举报
回复
不是告诉你原因时什么了么?错误又不在你贴的代码中,你应该去看看到底哪儿大括号不匹配
[Quote=引用 4 楼 cuifeicxcfcy 的回复:]
非常感谢,该程序实现对一个数组进行异或运算后输出,如何修改,帮帮忙!
[/Quote]
cattycat 2010-05-02
  • 打赏
  • 举报
回复
return &astrEcode[0];

返回局部变量的引用不对。
cattycat 2010-05-02
  • 打赏
  • 举报
回复
unsigned char *astrEcode=(unsinged char*)malloc(10240);
memset(astrEcode,0,10240);


return astrEcode;

改成这个样子吧。
cuifeicxcfcy 2010-05-02
  • 打赏
  • 举报
回复
非常感谢,该程序实现对一个数组进行异或运算后输出,如何修改,帮帮忙!
arong1234 2010-05-01
  • 打赏
  • 举报
回复
这个错误一般说明这个函数的“前一个函数”内部大括号不匹配
heartlesstoanyone 2010-05-01
  • 打赏
  • 举报
回复
返回值错误,返回的是指向栈上分配的内存的地址,在方法结束时,那块内存就没了。

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧