Datenstruktur mit unbegrenzter Größe?
-
Hallo,
mein Programm liefert mir ab einem gewissen Schwellenwert den Fehler:
"Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."Meine Vermutung ist, dass die zugrunde liegende Datenstruktur voll ist.
Ab diesem Schwellwert habe ich über 32000 Elemente in der Datenstrukur.
Ich habe es bisher sowohl mit Queue, Vector und List versucht - immer
mit dem gleichen Ergebnis.Kann es sein, dass diese Datenstrukturen begrenzte Größe haben und deshalb
diese Fehlermeldung kommt, oder bin ich da auf dem Holzweg?
Wenn ja, welche Datenstruktur kann denn unbegrenzt Elemente aufnehmen?
-
Was für Daten willst du denn speichern? Von einer Größen-Beschränkung der Container wüsste ich jetzt nichts... Wieviel Speicher verbraucht den dein Programm?
-
Das ist jetzt nur ein Schuss ins Blaue, aber kann es vielleicht sein, dass deine Index-Variable (mit der du dich im Array bewegst) nur eine 16-Bit-Variable ist? Dann wäre (z.B. bei signed short) ja bei 32767 Schluss. Somit wären wir in etwa bei deinen 32000 Elementen. Inkrementierst du deine Index-Variable über den maximalen Wert hinaus, wird daraus ein negativer Wert, der natürlich nicht mehr als Index für deine Struktur taugt.
Falls das in die richtige Richtung geht, dann nimm einfach eine long-Variable.
-
Was meinst du genau damit, wie viel Speicher es braucht?
Ich speichere darin die x- und y-Koordinaten (Bildverarbeitung).
Eine Index-Variable habe ich gar nicht, weil ich ja mit push und pop arbeite.
Danke schonmal für die Antworten.
-
troobee schrieb:
Was meinst du genau damit, wie viel Speicher es braucht?
Er meint damit wohl: Wieviel Speicher verbraucht dein Programm? *SCNR*
greetz, Swordfish
-
Also an Arbeitsspeicher verbraucht es so gut wie nichts und ist auch schon nach ein paar zehntel Sekunden fertig.
-
troobee schrieb:
Also an Arbeitsspeicher verbraucht es so gut wie nichts und ist auch schon nach ein paar zehntel Sekunden fertig.
Am Container sollte es auch nicht liegen, die sind nicht auf 32k begrenzt (gerade list nicht, da diese keine zusammenhängenden Blöcke hat). Wenn eine Begrenzung existiert dann hat das eher mit dem Programmspeicher oder der Größe von size_t (was sehr unwahrscheinlich ist ;p ) zu tun.
cu André
-
Die Fehlermeldung "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt" bedeutet einfach, daß du versuchst einen Nullzeiger zu dereferenzieren...
-
Alles klar - habs.

Der Fehler war sogar noch viel dümmer als ich gedacht habe.
Danke für die Hilfe.