while(*out++);
ってループ抜けた時点で\0を指してるの?
それとも\0の次を指してる?