неинициализированная локальная переменная «имя» используется uninitialized local variable ‘name‘ used
Локальная переменная имя был используется, то есть считывание, до того, как оно было назначено значение. The local variable name has been used, that is, read from, before it has been assigned a value. В C и C++ локальные переменные не инициализируются по умолчанию. In C and C++, local variables are not initialized by default. Неинициализированные переменные могут содержать любое значение, и их применение приводит к неопределенному поведению. Uninitialized variables can contain any value, and their use leads to undefined behavior. Предупреждение C4700 почти всегда указывает на ошибку, что может привести к непредсказуемым результатам или происходит аварийный сбой программы. Warning C4700 almost always indicates a bug that can cause unpredictable results or crashes in your program.
Чтобы устранить эту проблему, можно инициализировать локальные переменные, если они объявлены, или назначить значение к ним, прежде чем они используются. To fix this issue, you can initialize local variables when they are declared, or assign a value to them before they are used. Функция может использоваться для инициализации переменной, передаваемый в качестве ссылочного параметра, или если адрес передается как параметр-указатель. A function can be used to initialize a variable that’s passed as a reference parameter, or when its address is passed as a pointer parameter.
Пример Example
Этот пример приводит к возникновению ошибки C4700, когда переменные t, u и v используются, прежде чем они инициализируются и показывает, какие значения сборки мусора, которая может привести. This sample generates C4700 when variables t, u, and v are used before they are initialized, and shows the kind of garbage value that can result. Переменные x, y и z не вызвать предупреждение, так как они инициализируются перед использованием: Variables x, y, and z do not cause the warning, because they are initialized before use:
Когда этот код является выполнения, t, u и v не инициализированы и выходные данные для s будет непредсказуемым: When this code is run, t, u, and v are uninitialized, and the output for s is unpredictable:
Не могу запустить рабочий проект под Visual Studio 2013 из-за этой ошибки. Проект старый, делался еще под Visual Studio 6.0. Видимо, там выдавалось предупреждение вместо ошибки.
Переменных много. Может быть, все-таки можно обойти эту ошибку, не инициализируя их все?

1 ответ 1
В свойствах проекта — свойства конфигурации — С/С++ — создание кода — проверка безопасности — Отключить проверку безопасности (/GS-)
Здравствуйте. Я совсем новичок в программировании, никакого опыта не было. В общем компилятор показывает ошибку «error C4700: использована неинициализированная локальная переменная «a» и также «b». Не могу понять, что нужно сделать, укажите пожалуйста на ошибку.
- Вопрос задан более трёх лет назад
- 16829 просмотров

Вы складываете a и b, не присвоив им значений. В C/C++ в этом случае в переменных может оказаться произвольный мусор. Нужно писать double a = 0; double b = 0;