Dobrý den, mám problém s částí mého kódu.
void znak(int pridani)
{
int a;
int b;
int c;
if (pridani >= 0 && pridani<257)
{
for (a=0;a<256;a++) //test zda jiz neni v retezci
{
if (pridani==znaky[a]) {return;}
else if (pridani!=znaky[a]) {;}
else {std::cout<< "Error 16";}
}
for (b=0;b<256;b++) //hledani volnych mist
{
c=255-b;
if (znaky[c]==0)
{
znaky[c]=pridani;std::cout<< "Znak uspesne pridan" <<std::endl;
if (znaky[c]!=0) {return;}
else {std::cout<< "Error 18";}
}
}
}
else {std::cout<< "Error 17"; return;}
}
a po něm nasleduje funkce ve které je:
for (int f=0;f<256;f++)
{
if (znaky[f]!=0)
{
g=znaky[f];
pomoc[g]=znaky[f];
if (pomoc[g]!=0) {znaky[f]=0;}
else if (pomoc[g]==0) {f=0;std::cout<< "Error 27";}
else {std::cout<< "Error 28";}
}
else if (znaky[f]==0) {}
else {std::cout<< "Error 26";}
for (i=0;i<256;i++)
{
if (pomoc[i]!=0)
{
znaky[i]=pomoc[i];
}
}
}
Ovšem jakmile dojde na druhou část kódu tak program spadne, ani mi to nenahlásí žádný error. Nehledě na fakt že jakmile dosazuji do funkce znak písmena a čísla tak jede v pohodě, ovšem jakmile do ní dosadím znaky s diakritikou, nějak mi je z pole vymaže (nemám ponětí jak), a jakmile první funkci vložím do cyklu aby se předali úplně všechny znaky ASCII tabulky tak cely program spadne během probíhání druhého kódu. Nevíte někdo čím to může být způsobeno? (pozn. pole znaky je globální proměnná.) Děkuji za rady..