¿Cuál es el truco detrás de strcpy () / uninitialized char pointer este código?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void main ()
{
char *imsi;
unsigned int i;
int val;
char *dest;
imsi = "405750111";
strncpy(dest,imsi,5);
printf("%s",dest);
/* i = 10; */
}
En el código anterior, con eli = 10 la asignación se comenta como anteriormente, el código funciona bien sin error. Cuando la asignación se incluye para la compilación, el error(Fallo de segmentación) ocurre enstrncpy (dest, imsi, 5);.
Al evitar la optimización a variablei (es decir.,volátil int i;), el error se borra incluso con la asignación (i = 10) incluido.