sayso Geschrieben 1. November 2005 Geschrieben 1. November 2005 Hallo, wenn ich einen Wert der Structur hostent ausgeben will funktioniert es einfach nicht und ich finde meinen Fehler imo nicht. Vllt . könnt ihr weiterhelfen: int myfunc(int int_socketc, struct sockaddr_in *str_socketc) { unsigned long int lon_hostip; struct hostent *str_host; lon_hostip = inet_Addr(inet_ntoa(str_socketc->sin_addr)); str_host = gethostbyaddr ((char *)&lonhostip, sizeof(lon_hostip), AF_INET); if ( str_host = NULL) { fprintf (stderr, "blablabla"); } fprintf (stderr, "%s", str_host->h_name); } wenn das programm auf die fprintzeile läuft in der ich den hostnamen ausgeben will (die letzte zeile), dann bringt er mir immer einen speicherzugriffsfehler ... :beagolisc :beagolisc Der Zeiger str_socketc zeigt auf die richtige Struktur, da hier auch die IP drinsteht von der an die Socketverbindung connectiert wurde... Nur wenn ich den h_name ausgeben will bringt er mir einen Speicherzugriffsfehler... kann mir mal jemand helfen?
Klotzkopp Geschrieben 1. November 2005 Geschrieben 1. November 2005 if ( str_host = NULL) Das ist eine Zuweisung, kein Vergleich. Du setzt hier str_host auf NULL. Dieser Ausdruck wird wiederum immer als false ausgewertet, daher wird der if-Block niemals betreten. In der nachfolgenden Anweisung greifst du dann über einen Nullzeiger auf einen Member zu. Vergleich ist ==.
sayso Geschrieben 1. November 2005 Autor Geschrieben 1. November 2005 Das ist eine Zuweisung, kein Vergleich. Du setzt hier str_host auf NULL. Dieser Ausdruck wird wiederum immer als false ausgewertet, daher wird der if-Block niemals betreten. In der nachfolgenden Anweisung greifst du dann über einen Nullzeiger auf einen Member zu. Vergleich ist ==. *args* man ich hasse solche tippfehler - und das dumme daran ist man sieht sich nicht selbst Naja nach der Mittagspause läufts sowieso besser man dankt :e@sy
Guybrush Threepwood Geschrieben 1. November 2005 Geschrieben 1. November 2005 Wenn dir sowas öfters passiert dann dreh den Vergleich einfach um. Wenn du es so machst: if (NULL == str_host) [/PHP] und dann nur ein = tippst dann bekommst du vom Compiler eine Fehlermeldung weil du NULL ja nichts zuweisen kannst.
sayso Geschrieben 1. November 2005 Autor Geschrieben 1. November 2005 Wenn dir sowas öfters passiert dann dreh den Vergleich einfach um. Wenn du es so machst: if (NULL == str_host) [/PHP] und dann nur ein = tippst dann bekommst du vom Compiler eine Fehlermeldung weil du NULL ja nichts zuweisen kannst. hey, super Tipp danke Hier wird einen echt schnell und zuverlässig geholfen... werde es ab jetzt immer umdrehen
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden