Ahoj,
Cčko se chová trochu jinak, než bych čekal.
Mám pole znaků (A to začne dělat problémy...):
unsigned char myfield[32]; Vynuluji ho:
memset(myfield, 0, 32);Vytvořím si proměnnou, která by se neměla měnit:
char vstupniSoubor[] ="in.tx";A teď začnu zapisovat do toho pole, resp. nastavovat prvky na pozici 0.
Na pozici 0 zapíšu hodnotu 0-255:
myfield[0]=(unsigned char)255;printf("%s\n",vstupniSoubor);
myfield[0]=(unsigned char)0;printf("%s\n",vstupniSoubor);
myfield[0]=(unsigned char)127;printf("%s\n",vstupniSoubor);
myfield[0]=(unsigned char)255;No a tohle mi velice rychle rozmrcasí tu proměnnou vstupniSoubor :-(

Když to nechám běžet dostatečně dlouho, rozbije to okno terminálu a nakonec to položí celý stroj.
Samotná hodnota myfield je naprosto v pořádku.
Pokud měním jiný prvek než nultý, tak se problém neprojevuje (možná to dělá paseku mimo tu proměnnou, kterou zobrazuji).
Jednak nechápu, proč by to mělo přetékat mimo pole.
Tj. kdyby se hodnota 0-255 nevešla do charu, což by se vejít měla, tak by to mělo ovlivnit sousední prvek.
Nakopněte mě, co je na tomhle špatně:
myfield[0]=(unsigned char)255;Tato varianta se chová úplně stejně:
myfield[0]=255;Co je špatně?
