*_s
: вы явно указываете размер принимающего буфера (первый параметр), все, что туда не влезет (строка-источник из третьего параметра оказалась больше) - будет обрезано и память лежащая за целевым буфером ним не повредится.std::string
и подобными классами. strcpy_s(full_name, Buffer_size + 1, last_name);
sizeof(full_name) == Buffer_size * 2
Buffer_size + 1
(даже если буфер был бы размера Buffer_size
) не имеет смысла, ибо нуль-символ внутри буфера, а еще +1
"залезло" бы за границу массива, с этого момента при некотором стечении обстоятельств (копируемая строка была бы на 1 символ длиннее, чем буфер назначения) поведение программы было бы не определено (undefined behaviour). std::string
, то там будет пресловутые char
'ы. С поправкой на шаблон, конечно.system("gcc C:/Folder/My\\ Folder/example.c" );
Вот это как раз и будет результат проверки. Видимо, вы слишком длинную строку передаете (больше
Buffer_size
)