Ich erhalte einen segfault Fehler beim Aufruf p_o-> p_order _-> somefunc(). Ich schaute in den Debugger und sah, dass die Zähler der gemeinsamen Zeiger seltsam erscheinen. Es zeigt eine neg Zählung für die gemeinsame ptr und eine große coutn für schwache ptr (die ich nie benutzt)Was bedeutet es, wenn ein intelligenter Zeiger zeigt negative uscount
p_o @0x60c3331 Online::sptrOrder
data @0x60c3331 Online::OrderMgr
p_order_ 0x20000000009b6b7 Online::Order *
id_ 40 long
usecount -1602224128 int
weakcount 636599 int
px 1.99 double
is_fruit_ false bool
size 10 long
Versteh ich die hier dargebotenen Informationen oder gibt es etwas seltsam los? Auch ich bin nicht wirklich vertraut mit dem Debugger, aber .. Ist das Fehlen eines @Adresse der Linie
p_order_ 0x20000000009b6b7 Online::Order
den Zeiger p_order_ implizieren (der ein Rohzeiger ist) ist nicht gültig/null ,. .? Oder ist das 0x20000000009b6b7 eine Art Adresse?
Es bedeutet, dass Ihr Code irgendwo einen Fehler hat, der zu einem beschädigten Heap führte. –
Bitte schreiben Sie ein [mcve], wenn Sie mehr von einer Antwort wollen als "irgendwas, das den Haufen zerstört hat", was ungefähr alles ist, was wir mit dieser Information sagen können. –