ノート:
これは純粋な C に関する質問です。C++ 関数などはありません。
質問:
malloc
100 の余地があるバッファがあるとしますchars
。次に、これらのスロットのうち 5 つだけを実際の で埋めchars
ます。次のように、バッファー内の残りのすべてのスロットを null にすることをお勧めします。
while (nextAvailableBufferSlot < currentBufferSize)
{
buffer[nextAvailableBufferSlot] = '\0';
nextAvailableBufferSlot++;
}
これは厳密に必要ですか、それとも単純にbuffer[5] = '\0'
自分でループを設定して保存できますか?
環境:
問題のコードは 4096 のバッファ サイズで非常に頻繁に呼び出され、そこにコピーされる文字列の 99% ははるかに短いため、上記のループはほぼ毎回、少なくとも 2,000 回の繰り返しで実行されます。
弦のサイズを事前に知ることはできません。また、再割り当ては非常にコストがかかるため、最初は大きなバッファー サイズを選択します。デスクトップ クラスのハードウェアを対象としているため、メモリはまったく制限されません。