es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error de puntero local no inicializado en el código

¿Alguien puede identificar por qué obtengo este error?

Error C4703 se utilizó una variable de puntero local potencialmente no inicializada ‘pw’

Advertencia C6001 Usando memoria no inicializada ‘pw’.

“`

#define CRTSECURENOWARNINGS

#include <stdio.h>

#include <stdlib.h>

int main()
{
char string[] = "Today exam is very easy and fun", le = 'y';
char* pStr = string, * pw;

while (*pStr)
{
if (pStr == string || *(pStr – 1) == ' ')
pw = pStr;

<pre><code>if (*pStr == le && (*(pStr + 1) < 'a' || *(pStr + 1) > 'z'))
{
while (pw <= pStr)
printf("%c", *pw++);
printf(" ");
}
pStr++;
while ((*pStr < 'a' || *pStr > 'z') && (*pStr < 'A' || *pStr > 'Z') && *pStr)
pStr++;
</code></pre>

}
return 0;
}

“`</stdlib.h></stdio.h>

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El error es causado por la variable de puntero local ‘pw’ potencialmente no inicializada que se utiliza en la condición del bucle while. ‘pw’ solo se asigna a un valor cuando la declaración if es verdadera, pero si la declaración if falla en la primera iteración del bucle while, ‘pw’ permanecerá sin inicializar y se utilizará en la segunda declaración if. Para solucionar este error, ‘pw’ debería inicializarse con un valor predeterminado o asignársele un valor antes de utilizarlo en la segunda declaración if.

Comments are closed.