Ошибка функции strcpy
начал изучать строки и появился вопрос:
При выполнение команды strcpy в Visual Studio возникает ошибка компиляции ибо это небезопасно использовать данную команду.Почему ее небезопасно использовать?И какая разница между strcpy и strcpy_s ?
PS.Прошу прошения если вопрос составлен плохо.
Ответы (1 шт):
Не то чтобы опасно, просто надо обеспечить некоторые условия. Например
char s[5];
strcpy(s,"Hello, world");
и в результате в массив из пяти символов копируется 13 символов. Возникает проблема.
В VC++ это не ошибка, а предупреждение - что лучше б вам использовать версию, в которую вы должны передать еще и размер массива-приемника:
strcpy_s(s,5,"Hello, world");
и больше, чем указано, символов скопировано не будет.
VC++, кстати, сообщает о том, как заставить его не считать это проблемой - прочтите его сообщение полностью, и добавьте в код первой строкой
#define _CRT_SECURE_NO_WARNINGS
Ну, или таки используйте strcpy_s...