?
Ich habe nun einfach vorher mal die Rechnung in der while-Schleife durchlaufen lassen und gezählt wie groß mein Ergebnis-Array sein soll.
Danach initialisiere ich das Array Ergebnis und führe ein weiteres Mal die while-Schleife aus, wo die Ergebnisse in das Array geschrieben werden. Aber in Zeile 41 kommt jetzt ein Access Violation Fehler.
Ich verstehe das nicht und bin in C auch nicht so der Crack. Bitte helft mir.
Gruß
David
void main(int argc,char *argv[])
{
int zahl = 0;
int basis = 0;
int x = 0;
int y = 0;
int i = 0;
char *a[] = {"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};
//Benutzereingaben einlesen
do{
printf("Bitte geben Sie einen ganzzahligen positiven Zahlenwert zu Basis 10 ein: ");
scanf("%d", &zahl);
} while ((zahl < 0) && (zahl > 32767));
do{
printf("Bitte geben Sie die Basis, in die umgerechnet werden soll, ein: ");
scanf("%d", &basis);
} while ((basis < 2) && (basis > 16));
//Vorberechnung
x = zahl;
i=0;
while(x > 0){
i++;
x = (int)(x / basis);
}
//Umrechung
x = zahl;
char *Ergebnis[i];
i=0;
while(x > 0){
y = x % basis;
x = (int)(x / basis);
//strcpy(Ergebnis[i],a[y]);
Ergebnis[i] = a[y];
i++;
}
//Ausgabe der umgerecheten Zahl
printf("Die Zahl %d ist im Zahlensystem zur Basis %d :",zahl,basis);
for(int j=i;j > 0 ;j=j+1)
{
printf("%s",Ergebnis[j]);
}
}