Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno C++ - Heap corruption detected

Napr. ze na zaciatku si nastavis 2 premenne "pozicia_cislo1" a "pozicia_cislo2" na index poslednej cifry cisel vo vstupnom poli, a premenne zaciatok_cislo1 a zaciatok_cislo2 na poziciu prvej cifry vo vstupnom poli.
Potom len vytvoris vystupne pole, a mozes hned ratat, nieco ako

int cifra1,cifra2,prenos;
prenos=0;
for(i=0;i<velkost_vystupneho_pola;i++) // pre kazdu cifru vystupneho pola
{
 if(pozicia_cislo1<zaciatok_cislo1) // som uz mimo cisla1?
  cifra1=0;                         // tak potom nula
 else
  cifra1=vstup[pozicia_cislo1--] - '0';

 if(pozicia_cislo2<zaciatok_cislo2) // som uz mimo cisla2?
  cifra2=0;                         // tak potom nula
 else
  cifra2=vstup[pozicia_cislo2--] - '0';

 //a teraz si vyratas sucet cifra1+cifra2+prenos a nastavis podla toho vystup[i] a prenos
 vystup[i]=(cifra1+cifra2+prenos)%2;
 prenos=(cifra1+cifra2+prenos)/2;
} // konec cyklu a aj celeho programu :D
P.S. zaklad optimalneho programovania je okrem inych veci aj zakazdym ked chces urobit novu premennu alebo pole sa najprv zamyslet co uz mam v stavajucich premennych a poliach, a nevytvarat zbytocne nove premenne a polia so stejnymi datami ak uz tie data niekde mam v stavajucej premennej. Akurat ked chcem nejaku premennu menit a zartoven si ale aj zachovat povodnu hodnotu tak novu premennu samozrejme potrebujem. V mojom pripade to su tie pozicia_cisla1 a 2, tie chcem v cykle menit tak preto som ju vytvoril extra, aj ked poziciu poslednej cifry by som si vedel zakazdym vyratat z premennych ktore som uz mal.
Ale nerob si stres, optimalne dnes neprogramuje uz asi skoro nikto ani v profesionalnom celosvetovom meritku, mozog je totiz celosvetovo nedostatkovy tovar :D Dnes ide len o to zaskrtnut v nejakom dementnom managerskom SW ze je naplanovany bod implemented a accepted, a ziaden flag ze "je to uplna sracka" manager v programe nema takze to nikoho nezaujima :D

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny