永发信息网

为什么加上memset(buf,0x00,sizeof(buf));程序出现段错误

答案:2  悬赏:20  手机版
解决时间 2021-03-07 13:42
  • 提问者网友:鼻尖触碰
  • 2021-03-07 01:37
#include
#include

char* itoa(int i,char *p)
{
char *q=NULL;
if(p == NULL)
{
return NULL;
}
p[0]=(i / 10000) + '0';
i=i % 10000;
p[1]=(i / 1000) + '0';
i=i % 1000;
p[2]=(i / 100) + '0';
i=i % 100;
p[3]=(i / 10) + '0';
i=i % 10;
p[4]=i + '0';
p[5]='\0';
q = p;
while(*q != '\0' && *q == '0')
q++;
if(*q != '\0')
strcpy(p,q);
return p;
}
int main(void)
{
char buf[10];
int a=1;
//memset(buf,0x00,sizeof(buf));
printf("%s\n",itoa(a,buf));
}
最佳答案
  • 五星知识达人网友:怀裏藏嬌
  • 2021-03-07 03:12
代码本身没错误,加上memset应该没问题(或者贴错误信息);itoa函数只处理5位,保证a值即可
全部回答
  • 1楼网友:枭雄戏美人
  • 2021-03-07 03:25
搜一下:为什么加上memset(buf,0x00,sizeof(buf));程序出现段错误
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯