strncpyで質問です。
関数の外部からくるサイズのわからないchar*の変数srcから
charの変数destに文字列をコピーしたいのですが、下記のようなコードで問題無いでしょうか?
destのバッファより大きなsrcがきた場合は切り捨てても問題ありません。

char dest[1025];

ZeroMemory(dest, sizeof(dest));
strncpy(dest, src, sizeof(dest) - 1);

気になったのは、srcがdestより小さい場合、strncpyでsrcの領域を超えてコピーすることになるので、
おかしな事にならないかと言うことです。
また、strncpyの際にsizeから-1しているのは、常に最後の\0を保持するために必要という理解です。

小さい方のサイズでコピーするとか下記のようにやらないと駄目でしょうか?

strncpy(dest, src, strlen(src) < sizeof(dest) - 1 ? strlen(src) : sizeof(dest));