Какой трюк стоит за strcpy () / неинициализированным символьным указателем на этот код?
#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; */
}
В приведенном выше коде, ся = 10 назначение прокомментировано как и выше, код работает без ошибок. Когда назначение включено для компиляции, ошибка(ошибка сегментации) происходит вstrncpy (Dest, IMSI, 5);.
Избегая оптимизации до переменнойi (Т.е.изменчивый int i;), ошибка очищается даже при назначении (я = 10) включены.