次のコードは、一方のプログラムで正常に機能し、もう一方のプログラムでバスエラーを引き起こしました
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は文字列です。このバスエラーの原因と、これを解決するにはどうすればよいですか?さらに、この奇妙な行動の理由は何ですか?