Форум программистов, компьютерный форум CyberForum.ru

Hello World и ошибка "This function or variable may be unsafe. Consider using strcpy_s instead" - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
FIN7
 Аватар для FIN7
2 / 2 / 0
Регистрация: 09.02.2013
Сообщений: 168
24.08.2014, 21:41     Hello World и ошибка "This function or variable may be unsafe. Consider using strcpy_s instead" #1
C++
1
2
3
4
5
6
7
8
9
10
int str()
{
    char str21[11];
    char str1[] = "Hello World";
    strcpy(str21, str1);
    cout << str1 << "\n" << strlen(str1) << "\n" << str21;
 
    return 0;
 
}
что тут не правильно?

ошибку выдает
Error 3 error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\users\7777\documents\visual studio 2013\projects\consoleapplication19\consoleapplication19\source.cpp 61 1 ConsoleApplication19
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jewbacabra
1791 / 1506 / 539
Регистрация: 24.04.2014
Сообщений: 4,229
24.08.2014, 21:45     Hello World и ошибка "This function or variable may be unsafe. Consider using strcpy_s instead" #2
добавь в самое начало
C++
1
#define _CRT_SECURE_NO_WARNINGS
Gygocopter
10 / 10 / 5
Регистрация: 05.02.2014
Сообщений: 124
24.08.2014, 21:48     Hello World и ошибка "This function or variable may be unsafe. Consider using strcpy_s instead" #3
FIN7, это в VS просит использовать strcpy_s вместо strcpy.
Жмешь правой кнопкой на #include "stdafx.h" -> open document "stdafx.h"
В открывшемся окне пишешь на следующей строке после #include "targetver.h" ->#define _CRT_SECURE_NO_WARNINGS

Добавлено через 33 секунды
FIN7, это в VS просит использовать strcpy_s вместо strcpy.
Жмешь правой кнопкой на #include "stdafx.h" -> open document "stdafx.h"
В открывшемся окне пишешь на следующей строке после #include "targetver.h" ->#define _CRT_SECURE_NO_WARNINGS
FIN7
 Аватар для FIN7
2 / 2 / 0
Регистрация: 09.02.2013
Сообщений: 168
24.08.2014, 21:49  [ТС]     Hello World и ошибка "This function or variable may be unsafe. Consider using strcpy_s instead" #4
Jewbacabra, у меня потом ошибку выдает при запуске
Миниатюры
Hello World и ошибка "This function or variable may be unsafe. Consider using strcpy_s instead"  
Gygocopter
10 / 10 / 5
Регистрация: 05.02.2014
Сообщений: 124
24.08.2014, 21:50     Hello World и ошибка "This function or variable may be unsafe. Consider using strcpy_s instead" #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
FIN7,
C++
1
char str21[12];
Galbator1x
0 / 0 / 0
Регистрация: 22.08.2013
Сообщений: 4
24.08.2014, 21:51     Hello World и ошибка "This function or variable may be unsafe. Consider using strcpy_s instead" #6
У меня такая же ошибка
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Код C++
1
#define _CRT_SECURE_NO_WARNINGS
не помогло
_Ivana
2185 / 1390 / 124
Регистрация: 01.03.2013
Сообщений: 4,136
Записей в блоге: 2
24.08.2014, 22:00     Hello World и ошибка "This function or variable may be unsafe. Consider using strcpy_s instead" #7
Может поможет изучение чем в С строка отличается от массива чаров?
Alex5
883 / 618 / 81
Регистрация: 12.04.2010
Сообщений: 1,552
24.08.2014, 22:22     Hello World и ошибка "This function or variable may be unsafe. Consider using strcpy_s instead" #8
Цитата Сообщение от FIN7 Посмотреть сообщение
C++
1
char str1[] = "Hello World";
C++
1
2
char arr[] = "ab";      //  Массив arr[] состоит из 3 элементов 
cout << sizeof( arr ) << endl;  /*  3   */
gru74ik
Модератор
 Аватар для gru74ik
3118 / 1344 / 167
Регистрация: 20.02.2013
Сообщений: 3,810
Записей в блоге: 17
24.08.2014, 22:31     Hello World и ошибка "This function or variable may be unsafe. Consider using strcpy_s instead" #9
Galbator1x, там ещё одной "ячейки" в массиве не хватает в конце, в которой должен быть так называемый "терминальный ноль" (управляющая последовательность \0). Именно этот завершающий ноль и делает обычный char массив строкой в стиле C.
Поэтому количество элементов массива должно быть (в данном случае) 12, а не 11, на что уже выше знающие люди и указали.
BlackIce
309 / 171 / 64
Регистрация: 18.01.2014
Сообщений: 387
24.08.2014, 22:35     Hello World и ошибка "This function or variable may be unsafe. Consider using strcpy_s instead" #10
У меня все работает:
Hello World и ошибка "This function or variable may be unsafe. Consider using strcpy_s instead"
1) Вы забываете, что строка нультерменированна, т.е. в конце еще один символ '\0', для которого тоже нужно выделить место.
2) Не знаю по какой причине (может это вы сами так настроили), но в настройках вашего компилятора предупреждение C4996 определяется как ошибка (может и остальные warinings тоже будут ошибками), т.е. вместо того, чтобы выдать предупреждение, компилятор выдает сообщение об ошибке и останавливает компиляцию. Попробуйте восстановить стандартное поведение компилятора и определить в настройках макру _CRT_SECURE_NO_WARNINGS для избежания предупреждающих сообщений.
Hrollo
34 / 34 / 6
Регистрация: 05.11.2013
Сообщений: 147
24.08.2014, 22:36     Hello World и ошибка "This function or variable may be unsafe. Consider using strcpy_s instead" #11
возможно вместо int str() надо написать int main()
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.08.2014, 23:57     Hello World и ошибка "This function or variable may be unsafe. Consider using strcpy_s instead"
Еще ссылки по теме:

C++ Ошибка при работе с файлами: C4996: 'fopen': This function or variable may be unsafe
C++ Ошибка: 'strcpy': This function or variable may be unsafe
Сравнение строк и ошибка "This function or variable may be unsafe" C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
КОП
348 / 280 / 86
Регистрация: 15.08.2010
Сообщений: 755
24.08.2014, 23:57     Hello World и ошибка "This function or variable may be unsafe. Consider using strcpy_s instead" #12
Цитата Сообщение от FIN7 Посмотреть сообщение
use _CRT_SECURE_NO_WARNINGS
Проект->свойства проекта->С/С++->Препроцессор->Определения препроцессора. Нажимаем редактировать, вставляем в новую строку _CRT_SECURE_NO_WARNINGS
Yandex
Объявления
24.08.2014, 23:57     Hello World и ошибка "This function or variable may be unsafe. Consider using strcpy_s instead"
Ответ Создать тему
Опции темы

Текущее время: 02:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru