请问这个函数为什么返回的内容不对?

[复制链接]
查看11 | 回复2 | 2011-5-27 12:48:25 | 显示全部楼层 |阅读模式
unsignedchar*send()
        {
        unsignedcharouBuff[]=\"abcd\";
return(ouBuff);
        }

voidmain(){
unsignedchar*sendBuffer;
sendBuffer=send();
printf(\"%s\",sendBuffer);
}
预期打印出的应该是abcd,但是输出是乱码。编译软件换过VC和C-free
回复

使用道具 举报

千问 | 2011-5-27 12:48:25 | 显示全部楼层
因为你的ouBuff[]是一个send()函数的局部变量,这样当这个函数作用完后,他就被释放了,自然在后面输出的就不是期望的结果而是乱码。可改为:
unsignedchar*send(unsignedcharouBuff[])
        {
       
return(ouBuff);
        }

voidmain(){
        unsignedcharouBuff1[]=\"abcd\";
unsignedchar*sendBuffer;
sendBuffer=send(ouBuff1);
printf(\"%s\",sendBuffer);
}
回复

使用道具 举报

千问 | 2011-5-27 12:48:25 | 显示全部楼层
刚刚试了下,没有效果
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行