类型转换成乱码

lydcgj 2003-06-22 05:48:34
char * Encrypt()
{
.......................
char aa[71];
sprintf(aa,"%08lX-%08lX-%08lX-%08lX-%08lX-%08lX-%08lX-%08lX",a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]);
//return "7A1DFD28-45626B25-B100A8DF-19E25FC0-6CBA7FC4-19B3C28D-E730B61E-60699667";
return aa;
}

char *temp=Encrypt();
MessageBox(temp);

当调用Encrypt()时,用MessageBox进行输出时,打不出想要的结果
用调试时temp="7A1DFD28-45626B25-B100A8DF-19E25FC0-6CBA7FC4-19B3C28D-E730B61E-60699667"

请高手指点
...全文
28 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lydcgj 2003-06-22
  • 打赏
  • 举报
回复
谢谢楼上两位,好了
lydcgj 2003-06-22
  • 打赏
  • 举报
回复
char * Encrypt()
是写在一个dll中的一个函数
如果
return aa
换成
return "sdsssssss"

则在能在messagebox中打出sdsssssss来
晨星 2003-06-22
  • 打赏
  • 举报
回复
可以改用static char aa[71];
但我的建议还是从外边把数组传进去:

char * Encrypt(char* aa)
{
.......................
//char aa[71];
sprintf(aa,"%08lX-%08lX-%08lX-%08lX-%08lX-%08lX-%08lX-%08lX",a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]);
return aa;
}

然后,
char aa[71];
Encrypt(aa);
晨星 2003-06-22
  • 打赏
  • 举报
回复
你的aa是个局部字符数组,函数返回后就没了。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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