pkfox Ответов: 1

Программа компилируется в release build но не отлаживается


Привет всем, у меня возникли проблемы с построением устаревшей программы C++ в VS 2015, она строится без ошибок в релизе, но не в отладке, строка, которую она ставит в тупик, это


gets_s( ch );

gets_s too few arguments for call


Почему он строится в релизе это мой вопрос

Что я уже пробовал:

Hi All, I'm having problems building a legacy C++ program in VS 2015, it builds without errors in Release but not in Debug, the line it baulks at it this


<pre lang="c++">
gets_s( ch );

gets_s too few arguments for call


Почему он строится в релизе это мой вопрос

1 Ответов

Рейтинг:
1

Jochen Arndt

Это, вероятно, происходит из-за перегрузки шаблона gets_s() функция, которая может вести себя по-разному при отладочных сборках.

Я попробовал это с VS 2017, и он прекрасно компилируется в режиме отладки:

char ch[10];
gets_s(ch);
Так что может быть интересно, как ваш ch переменная объявлена.

Чтобы избежать ошибки вы можете передать размер явно:
char ch[10];
gets_s(ch, sizeof(ch));


pkfox

Спасибо Йохен я попробую