std::vector.push_back() Problem
-
Ich habe ein Problem mit einem std::Vector oder wahrscheinlich eher einem Datentyp, den ich darin ablegen möchte.
std::cout << "Size of Vector before :" << this->vector.size() << std::endl; vector.push_back(datatype); std::cout << "Size of Vector after :" << this->vector.size() << std::endl;führt zu :
0
10540996613548315210Also geht das Einfügen irgendwie schief.
Hatte jemand schonmal dieses oder ein ähnliches Problem und kann vlt allein daraus schon schließen, was genau schief läuft?Das ganze hängt noch mit meinem ein paar Wochen alten Thread über Moleküle und Atome zusammen.
SeppJ wird sich vlt noch mit Grauen daran erinnern ^^
-
std::vector ist nicht das Problem! Der Fehler ist nicht in den 3 Zeilen zu finden. Es ist zu wenig Information enthalten.
-
Ravenheart_unreg schrieb:
10540996613548315210
== 0x0EA0EA0EA0EA0EA1
Kurios, oder?
-
0x0EA0EA0EA0EA0EA1
Verstehe ich leider nicht

-
Ravenheart_unreg schrieb:
0x0EA0EA0EA0EA0EA1
Verstehe ich leider nicht

Ich weiß zwar, worauf Bashar hinaus will:
http://en.wikipedia.org/wiki/Magic_number_(programming)#Magic_debug_values
Aber 0x0EA0EA0EA0EA0EA1 ist der verlinkten Seite, mir und Google allesamt unbekannt. Wo wird der verwendet?Zum Problem: Wie knivil schon gesagt hat: Zu wenig Information, siehe dritter Link in meiner Signatur. Du zerschießt dir irgendwo den Speicher, aber nicht in diesen drei Zeilen (oder höchstens indirekt über den hier benutzten, aber nicht gezeigten, Kopierkonstruktor). Der Fehler liegt höchstwahrscheinlich anderswo.
edit: Hey! 10540996613548315210 ist nicht 0x0EA0EA0EA0EA0EA1, sondern 0x9249249249249000 == b100100100100...1000000000000! Auch ein nettes Muster, ist mir aber auch unbekannt.
-
SeppJ schrieb:
edit: Hey! 10540996613548315210 ist nicht 0x0EA0EA0EA0EA0EA1, sondern 0x9249249249249000 == b100100100100...1000000000000! Auch ein nettes Muster, ist mir aber auch unbekannt.
Sch*** Windows-Taschenrechner. Der hat beim Einfügen die Null am Ende abgeschnitten.
-
Wolframalpha meint es wäre:
0x924924924924924a
-
Nymer schrieb:
Wolframalpha meint es wäre:
0x924924924924924aSch*** Online-Taschenrechner. Der hat das Ergebnis bei 53-Bit abgeschnitten.
-
die 0x9249249249249... müssen selbst ja kein ordentliches Speichermuster abgeben, aber vielleicht die Differenz aus zwei Speichermustern? size() = _Myend - _Myfirst

-
Ich finde es wahnsinnig spannend grad ^^
Ich hoffe ihr könnt noch etwas herausfinden, dann lerne ich auch etwas.
Das Hauptproblem scheint aber behoben zu sein:
Ich habe im Kopierkonstruktor ein wenig Blödsinn gehabt. Ich hoffe dass ich das ganze nun wieder im Griff habe.
-
Ravenheart_unreg schrieb:
Ich habe im Kopierkonstruktor ein wenig Blödsinn gehabt. Ich hoffe dass ich das ganze nun wieder im Griff habe.
Was für Blödsinn denn? Ich fands einfach komisch, dass der Wert nach einer "magic number" aussah und weniger nach zufalligem Datenmüll. Wie kommt sowas?
-
Bashar schrieb:
Was für Blödsinn denn?
Kandidaten sind memcpy & Co, reinterpret_cast + Schreibaktionen usw

Trotzdem wäre die Version mit dem Blödsinn (komplettcode!) interessant, um sich das Phänomen mal anzuschauen
