这个函数哪里错了

k_c_u_f 2010-02-21 11:34:19
// 十进制转转二进制码
char* dectobinary(long int value)
{
char* res;
itoa(value,&res,2);
return res;
}

函数作用是把一个十进制整数转换为二进制数,并且以字符串的形式返回,为什么老是出错,不知道是哪里出问题了。
...全文
54 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
magic7004 2010-02-21
  • 打赏
  • 举报
回复
晕,这个当然会出错了。
char* res; 只定义了指针,指针没有初始化,也没有分配内存,程序会崩溃的。
改成 char* res=new char[100];这样就可以用了,不过调用者用完这个字符串以后,要用free释放内存。
白云飘飘飘 2010-02-21
  • 打赏
  • 举报
回复
你没有为res分配内存,因为要返回,最好在函数外分配,通过参数传进来

char* dectobinary(long int value,char *res)
{
itoa(value,&res,2);
return res;
}
调用:
char buf[100];
dectobinary(10,buf);
oldmanzhao 2010-02-21
  • 打赏
  • 举报
回复
先要给res用new分配空间,然后itoa的时候传入res而不是&res。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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