C++03の場合はメモリの連続性が保証されてないから一旦char*にコピーしてから書き戻すのが良いと思う