delete gethostname



  • Hallo zusammen,

    ich rufe die Methode gethostname aus #include <netdb.h> auf
    Dann erhalte ich eine Zeiger auf ein struct hostent.
    Diesen muss ich doch wieder löschen, oder?

    hostent* host = gethostbyname("www.bier-dortmund.de");
    delete host;
    

    Warum stürzt das Programm beim deleten dann ab?

    Ich verwende danach den host nicht mehr, so dass es am
    löschen des host liegen muss...
    Ohne Löschen hab ich auch den Host schon verwendet.

    Muß/Darf ich den nicht löschen?

    Gruß,
    CSpille



  • Warum stürzt das Programm beim deleten dann ab?

    weil man delete nur nach der Verwendung von new benutzt werden muss. Außerdem sind die meisten solcher Funktionen in C geschrieben und wenn sie Speicher allokieren, dann mit malloc und die passende Funktion zur Freigabe des Speichers ist dann free und nicht delete. Man muss nicht malloc und delete mischen.

    Diesen muss ich doch wieder löschen, oder?

    nein. Laut man: gethostbyname(3) wird keinen Speicher allokiert.



  • CSpille schrieb:

    ich rufe die Methode gethostname aus #include <netdb.h> auf
    Dann erhalte ich eine Zeiger auf ein struct hostent.
    Diesen muss ich doch wieder löschen, oder?

    nein, das ist static memory.

    mfg


Anmelden zum Antworten