scanf_s требует, чтобы размер буфера в символах передавался как второй параметр.
int iNumFilled1 = scanf_s("%s", arr);
int iNumFilled2 = scanf_s("%s", arr, _countof(arr));
assert(iNumFilled1 == 0);
assert(iNumFilled2 == 1);
Вы также можете передать спецификатор ширины. Если он пропущен, и он не помещается в буфер, у вас будут только первые символы "указана ширина".
//Input a string longer than 99 chars
int iNumFilled3 = _tscanf_s(_T("%99s"), arr, _countof(arr));
assert(iNumFilled3 == 1);
//Again insert a string longer than 99 chars, but with no width specifier
int iNumFilled4 = _tscanf_s(_T("%s"), arr, _countof(arr));
assert(iNumFilled4 == 0);