Also schrieb ich einen einfachen c-Code, der eine Zahl in eine Zeichenkette umwandelt, und da ist eine Sache, die mir unklar ist. Auf diesem Code:Konvertiere eine Zahl in eine Zeichenkette
void itos(int a,char *p){
int pom = a;
do{
p++;
pom/=10;
}while(pom);
*p = '\0';
do{
pom = a%10 + '0';
*--p = pom;
a/=10;
}while(a);
}
Ich bekomme immer Segmentierung Fehler und ich verstehe nicht warum. Die Zeichenfolge wird an die Adresse übergeben, also sollte die Zeichenfolge aus der Hauptdatei nicht die Zeichenfolge in der Funktion enthalten? Auf der anderen Seite funktioniert dieser Code pefectly:
char *itos(int a,char *p){
int pom = a;
do{
p++;
pom/=10;
}while(pom);
*p = '\0';
do{
pom = a%10 + '0';
*--p = pom;
a/=10;
}while(a);
return p;
}
Wenn somone mir die diffrence erklären könnte (vor allem, warum die erste nicht funktioniert) würde ich extremlly greatful sein.
Die zwei unterscheidet nur den Rückgabewert, bitte auch den Code, der diese Funktion aufruft. – fluter
Bereits die Antwort erhalten. Der Zeiger wurde nicht korrekt initialisiert. Danke für die Hilfe! – sale