sprintf(data[i].code, "%d", i);
だろ。↑文字列が閉じてない。