Ahoj,
napsal jsem program na převod čísla z libovolné soustavy do desítkové, ale při skončení programu dostanu chybu "Run-Time Check Failure #2 - Stack around the variable 'cislo' was corrupted."
Já vím, že chyba je, že tam předávám "jakoby" prázdný řetězec, ale nevím, jak to jinak napsat...
Tady je kód:
#include <stdio.h>
#include <stdlib.h>
int do_desitkove(char cislo[], int zaklad);
int main()
{
char cislo[] = "";
int zaklad = 0, vysledek = 0;
printf("Zadejte libovolne cislo: ");
scanf("%s", cislo);
printf("Zadejte soustavu, ve ktere cislo je: ");
scanf("%d", &zaklad);
if(zaklad < 1)
{
printf("Neplatny zaklad pro soustavu!\n");
return 0;
}
vysledek = do_desitkove(cislo, zaklad);
printf("Cislo %s v soustave o zakladu %d\n", cislo, zaklad);
printf("odpovida cislu %d v desitkove soustave.\n", vysledek);
system("pause");
return 0;
}
int do_desitkove(char cislo[], int zaklad)
{
int nacteneCislo = 0;
nacteneCislo = strtol(cislo, 0, zaklad);
return nacteneCislo;
}
Díky za rady!