C/C++言語で配列を関数に渡す際、その長さは関数側では知ることができません。なので配列の先頭要素へのポインターとそのサイズを渡します。 extern void func(char *array, size_t size); void foo(void) { char array[100]; func(array, sizeof (array)); } これが当たり前だと思っていました。 ところが今日 Microsft の sprintf_s を使ったコードを見ていたら サイズを指定している第2引数が無いコードとあるコードが両方存在していて?と思い調べてみました。