0 で埋められた大きな char 配列があります。受信ファイルをソケットから読み取り、その内容をバッファに配置します。すべての '\0' を含むバッファーを書き込めないため、正しいサイズの新しいバッファーを割り当てて書き込みます。私はそれを行うためにこのアプローチを使用しました:
int i = 0;
while(buf[i] != '\0'){
i++;
}
char new[i];
while(i){
new[i] = buf[i];
i--;
}
new[0] = buf[0];
このアプローチは機能しますが、最もスマートまたは最もエレガントな方法とは思えません。char配列から末尾のNULL文字をすべて削除する最良の方法は何ですか?