Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
variável local não inicializada 'name' usada
Observações
O nome da variável local foi usado, isto é, lido de, antes de lhe ter sido atribuído um valor. Em C e C++, as variáveis locais não são inicializadas por padrão. As variáveis não inicializadas podem conter qualquer valor, e seu uso leva a um comportamento indefinido. Aviso C4700 quase sempre indica um bug que pode causar resultados imprevisíveis ou falhas no seu programa.
Para corrigir esse problema, você pode inicializar variáveis locais quando elas forem declaradas ou atribuir um valor a elas antes de serem usadas. Uma função pode ser usada para inicializar uma variável que é passada como um parâmetro de referência ou quando seu endereço é passado como um parâmetro de ponteiro.
A opção do compilador (Ativar verificações de segurança adicionais) eleva esse aviso a um erro./sdl
Example
Este exemplo gera C4700 quando as variáveis t, u, e v são usadas antes de serem inicializadas, e mostra o tipo de valor lixo que pode resultar. As variáveis x, ye z não causam o aviso, porque são inicializadas antes do uso:
// c4700.cpp
// compile by using: cl /EHsc /W4 c4700.cpp
#include <iostream>
// function takes an int reference to initialize
void initialize(int& i)
{
i = 21;
}
int main()
{
int s, t, u, v; // Danger, uninitialized variables
s = t + u + v; // C4700: t, u, v used before initialization
std::cout << "Value in s: " << s << std::endl;
int w, x; // Danger, uninitialized variables
initialize(x); // fix: call function to init x before use
int y{10}; // fix: initialize y, z when declared
int z{11}; // This C++11 syntax is recommended over int z = 11;
w = x + y + z; // Okay, all values initialized before use
std::cout << "Value in w: " << w << std::endl;
}
Quando esse código é executado, t, u, e v não são inicializados, e a saída para s é imprevisível:
Value in s: 37816963
Value in w: 42