Zeiger Problem
-
Hi, ich versteh einfach nicht warum das nicht funktioniert:
... char* pZeiger; char buffer[50]; gets(buffer); *pZeiger = buffer;
Der Zeiger sollte doch auf's erste Zeichen von Buffer Zeigen oder?? Stattdessen spuckt mir der TC folgende Meldung aus:
Non-portable pointer assigment in function main
Possible use of "pZeiger" before definition in function mainIch hoff ihr könnt mir weiterhelfen
danke
-
AbsoluterBeginner schrieb:
Der Zeiger sollte doch auf's erste Zeichen von Buffer Zeigen oder??
Dann weise dem Zeiger doch die Adresse dieses Zeichens zu:
pZeiger = buffer;
Das Sternchen bei dir hieße ja, dass dem Zeichen, auf das pZeiger gerade zeigt, die Adresse von buffer zugewiesen werden sol.
-
gets(buffer);
gets() ist gefährlich, weil man damit einfach das was hinter buffer kommt überschreiben kann -> Bufferoverflow.
mfg
-
Stattdessen sollte man fgets() verwenden:
fgets(buffer, sizeof(buffer), stdin);