Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » funktion

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
13.10.2003, 13:51 Uhr
Pablo
Supertux
(Operator)



Zitat:
geissbock postete
ok. das ergibt einen sinn!

aber um noch mal auf den code zurückzukommen:

C++:
if (path == NULL)
      return path;



wieso sollte ich den abfragen ob es ein nullpointer ist?



Stell dir vor, du willst die überflüssigen / entfernen. Wenn path==NULL ist, dann kannst du nich, weil PATH nirgends zeigt, also fagst du, ob es NULL ist, wenn nicht kannst du damit abeiten sonst nicht.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
13.10.2003, 15:31 Uhr
geissbock



ja. aber wenn path path nirgens hinzeigt bringt es nix wenn ich ihn ausgebe.
entweder denk ich schon wieder zu kompliziert oder ich bin zu doof dazu.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
13.10.2003, 15:40 Uhr
Pablo
Supertux
(Operator)


Die Funktion liefert einen abarbeitenden Path zurück. Sagen wir mal, die Funktion soll den Path ohne das letzt / zurückliefern, also nochmal eine Zeichenkette. Wenn du der Funktion aber NULL als Zeichenkette übergibst, also nix übergibst, dann kann die Funktion nicht den Pfad bearbeiten, ja welchen? Aber die Funktion soll sowieso etwas zurückliefern. Also leferts di NULL zurück, um zu sagen, dass die Funktion nichts gemacht hat, und da char* path bereits NULL was, dann return PATH;

Äquiva,elnt wäre return NULL;
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
13.10.2003, 16:32 Uhr
ao

(Operator)



Zitat:
geissbock postete
ja. aber wenn path path nirgens hinzeigt bringt es nix wenn ich ihn ausgebe.
entweder denk ich schon wieder zu kompliziert oder ich bin zu doof dazu.


Denk mal anders rum. Wenn path auf NULL zeigt, darfst du den Inhalt nicht auswerten und nicht verändern; tust du es doch, stürzt wahrscheinlich entweder das Programm oder das ganze Betriebssystem ab (je nach Betriebssystem).

Die if (path == NULL)-Prüfung ist also eine Sicherheitsabfrage, ob die Funktion mit gültigen Argumenten aufgerufen wurde. Falls nicht, wird rechtzeitig abgebrochen, bevor Schlimmeres passieren kann.

Angezeigt wird dieser Fall durch die Rückgabe von NULL. Der Aufrufer muss also seinerseits das Ergebnis der Funktion prüfen, bevor er es verwendet.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: