[C] char Variable als String benutzen

webix

Mitglied
hallo,

folgender quellcode erzeugt bei der ausgabe einen speicherzugriffsfehler:

int main(){

char a[100],*bb, *cc;

scanf("%s", a);

sscanf(a,"%s %s", bb, cc);


printf("%s",bb);

}

Was wurde falsch deklariert?
 
bb und cc sind nur Pointer die auf einen unbestimmten Bereich im Arbeitsspeicher zeigen da ihnen nie ein Wert zugewiesen wurde. Bei sscanf(a,"%s %s", bb, cc); willst du in den Bereich nun Werte schreiben, obwohl der Bereich gar nicht für dein Programm allokiert ist.
 
moin


Abgesehen davon das ich keinen Sinn darin sehe, machs mal so:
Code:
int main(){

	char a[100],*bb, *cc;

	scanf("%s", a);

	bb = a;

	printf("%s",bb);

	return 0;
}


mfg
umbrasaxum
 
Sinn -> Er will wenn ich das richtig sehe das erste Wort (da getrennt durch " ") und den Rest aufteilen in 2 Variablen.

Lösung (getestet) -> Speicher für die Zeiger bb und cc allokieren.

Sprich Deklarationsfehler -> Am einfachste bb[50] und cc[50], ist aber sehr undynamisch, genau wie a[100].
 
Zurück