私は以下のコードを使用しています
char call[64] = {'\0'} /* clean buffer */
strncpy(call, info.called, sizeof(call));
ソースが宛先よりも大きい場合に備えて、オーバーフローを保護するために、常に宛先にsizeofを使用します。このようにして、宛先が処理できる量だけコピーするため、バッファオーバーフローを防ぐことができます。
しかし、私は今、それが宛先をヌル終了するかどうか疑問に思っています。
いくつかのケース。
1)ソースが大きい場合。私はこれを行うことができます:
call[strlen(call) - 1] = '\0'; /* insert a null at the last element.*/
2)送信元が宛先よりも小さい場合。呼び出しは64バイトで、ソースのサイズである50バイトをコピーします。51要素に自動的にnullを入れますか?
情報をありがとう、