wxIPV4address hat einen Haltepunkt ausgelöst
-
Hallo,
an der markierten Stelle sagt VS das hier ein Haltepunkt ausgelöst wurde.
Kompilieren klappt ohne Fehler nur beim start passiert es.Der thread wird sofort bei Programmstart mitgestartet
// Thread Funktion void *threadclass::Entry(){ wxIPV4address *addr = new wxIPV4address; // <-- Hier addr->Hostname(wxT("127.0.0.1")); addr->Service(3000); ...
Was ist der Fehler?
-
Der Code sieht soweit korrekt aus
Was sagt der Debugger?
-
Der Debugger sagt Haltepunkt ausgelöst wurde
Hat sich aber von selbst gelöst. Hab die addr in die Thread klasse als member aufgenommen, dann gings...Die Klasse:
class threadclass : public wxThreat { public: threadclass(){}; virtual void *Entry(); wxIPV4address addr; private: static unsigned int threads; };
Und der rest
void *threadclass::Entry(){ addr.Hostname(wxT("127.0.0.1")); addr.Service(3000);
Aber eine frage habe ich noch warum kann ich addr mit new erstellen:
wxIPV4address *addr = new wxIPV4address;
oder so?
wxIPV4address addr;
Dürfte nicht nur eins von beidem gehen?
-
Wieso sollte nur eins Funktionieren?
-
Aber macht es nicht nur Sin ein Objekt mit new erzeugen wenn es Laufzeitrelevant ist?
-
Mitbewohner schrieb:
Aber macht es nicht nur Sin ein Objekt mit new erzeugen wenn es Laufzeitrelevant ist?
Nö. Wie kommst du darauf? Auf dem Stack wirds sogar wieder nach dem Scope gelöscht, was praktisch sein kann.
New benutzt man eigentlich eher wenn der Wert über den Scope eine Funktion etc. bestehen soll.