Mam kod:
char *ciag(char *x, char *y, char *z)
{
char nowyciag[20] = {0};
nowyciag[0] = *x;
nowyciag[1] = *y;
nowyciag[2] = *z;
return nowyciag;
}
int main()
{
char a = 'a', b = 'b', c = 'c';
char * nowy = ciag(&a, &b, &c);
printf("1) %c%c%c\n", nowy[0], nowy[1], nowy[2]);
printf("2) %c%c%c\n", nowy[0], nowy[1], nowy[2]);
printf("3) %c", nowy[0]);
printf("%c", nowy[1]);
printf("%c\n", nowy[2]);
printf("4) %c%c%c\n", nowy[0], nowy[1], nowy[2]);
printf("5) %c%c%c\n", nowy[0], nowy[1], nowy[2]);
printf("6) %c", *ciag(&a, &b, &c));
printf("%c", *(ciag(&a, &b, &c)+1));
printf("%c\n", *(ciag(&a, &b, &c)+2));
getchar();
return 0;
}
W VS10 C++ Express w projekcie pod Debug printf 3) 4) 5) wypisuje śmieci. Testując w code::blocks nie mam tego problemu. O_o
Skąd takie zachowanie, przecież tu nie ma co zepsuć(?).
@Edit
mingw się rozmyślił i teraz też zaczął rzucać losowymi znaczkami