Was ist der Trick hinter strcpy () / uninitialized char pointer this code?
#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; */
}
Im obigen Code mit demi = 10 Zuordnung ist wie oben kommentiert, der Code funktioniert einwandfrei ohne Fehler. Wenn die Zuweisung für die Kompilierung enthalten ist, wird der Fehler (Segmentierungsfehler) tritt bei @ astrncpy (dest, imsi, 5);.
Durch Vermeidung der Optimierung auf Variablei (d. h.volatile int i;), der Fehler wird auch mit der Zuweisung behoben i = 10) inbegriffen