Error C4700: variable local no inicializada; cómo inicializarla en una aplicación MFC
Aquí está la pequeña parte de mi código. Estoy tratando de convertir mis operandos de cadena en enteros cuando los necesito con la función “atoi”. Y me encuentro con un error “variable local no inicializada”. ¿Cómo puedo solucionar este problema?
CDC * pDC = GetDC();
CSize cz;
input1.GetWindowTextW(operant1);
input2.GetWindowTextW(operant2);
combo.GetWindowTextW(advanced_text);
if(groupCheckRadio == 0){ //AND
const char* operant1;
const char* operant2;
int num1 = atoi(operant1);
int num2 = atoi(operant2);
result = (num1 & num2);
}
if(groupCheckRadio == 1){ //OR
const char* operant1;
const char* operant2;
int num1 = atoi(operant1);
int num2 = atoi(operant2);
result = (num1 | num2);
}
if(groupCheckRadio == 2){ //XOR
const char* operant1;
const char* operant2;
int num1 = atoi(operant1);
int num2 = atoi(operant2);
result = (num1 ^ num2);
}
//desplazando bits
if(checkShift.GetCheck() == 1){
int selected_index = combo.GetCurSel();
combo.GetLBText(selected_index,advanced_text);
}
davy.ai
El problema es que las variables
operant1
yoperant2
están declaradas como punteros pero no están inicializadas antes de usarlas en la funciónatoi
, lo que provoca el mensaje de error de una variable local no inicializada. Para solucionar este problema, debemos inicializar las variables antes de usarlas. Una solución es eliminar la palabra claveconst
de su declaración y asignar los valores de las llamadas a la funciónGetWindowTextW
, de esta manera:En este código actualizado, las variables
operant1
yoperant2
se declaran como búferes de cadena de caracteres y luego se les asignan valores de las dos cajas de texto de entrada mediante las llamadas a la funciónGetWindowTextW
. Luego, se utiliza la funciónatoi
para convertirlas en enteros. Esto inicializará las variables antes de usarlas en las operaciones bit a bit y eliminará el error de variable local no inicializada.