エラー「ヒープが壊れていることが原因として考えられます。」
mallocで確保した領域を初期化せずにstrcatしていたため、確保した領域内のゴミの後ろに文字列が連結されていた。今まではmalloc後にstrcpyしていたが、そこをコメントアウトしたことで発生していた。
回避するには、mallocした後はstrcatではなくstrcpyするか、mallocした領域を初期化して用いる。
char* buf = (char*)malloc(128);
char tmp[32];
//sprintf(tmp, "%3d", data1 );
//strcpy(buf, tmp);
sprintf(tmp, "%3d", data2 );
strcat(buf, tmp);
・・・・
// ここで「ヒープが壊れていることが原因として考えられます。」エラーとなる
std::string str = "test";