以下代码在一个程序中运行良好,但在另一个程序中导致总线错误
char *temp1;
temp1=(char*)malloc(2);
for(b=3;b>=0;b--)
{
sprintf(temp1,"%02x",s_ip[b]);
string temp2(temp1);
temp.append(temp2);
}
s_ip[b] 是 byte 类型, temp 是一个字符串。是什么导致了这个总线错误,我该如何解决这个问题?此外,这种奇怪行为的原因是什么?