Seite 1 von 1

Problem QVector, QList als Pointer in Class

Verfasst: 6. Juli 2007 10:44
von C_R
Hi,

ich habe eine Klasse mit einigen privaten Vektoren (ca 90 Stück).

Die Vektoren sind als Pointer definiert, da es sonst zu alloc-Fehlern bei Erstellen der Klasse führt (was ja prinzipiell auch klar ist)

Definition also in etwa so:

Code: Alles auswählen

class vieleVectoren
{
...
private:
QVector <double> * myVector;
};
Das erstellen der Klasse funktionert, sobald aber ein Zugriff auf einen der Vektoren erfolgt, zb:

Code: Alles auswählen

myVector->reserve(1);
Woraufhin das Programm abstürzt, Segmentation Fault, reserve(this = 0x10.., size = 1) @ qvector.h:200
also nicht 0x0

Krieg langsam nen Krampf damit. Weiß nicht, wie ich es lösen sollte..

Verfasst: 6. Juli 2007 10:53
von NoobSaibot
hast du den myVector initialisiert? ferner wird die reserve() funktion verwendet um den vektor etwas zu beschleunigen, indem man ihm die ungefähr erwartete anzahl der elemente, die gespeichert werden, beim reserve() angibt. was also versuchst du zu machen?

im übrigen, wenn du den pointer nicht initialisierst, verweist er irgendwohin im speicher. deshalb kein 0x000000. wenn du den pointer mit = 0 initialisierst wird er auf 0x000000 zeigen.

Verfasst: 6. Juli 2007 11:07
von C_R
oh man ja :X
natürlich, initialisieren... :oops:

:roll:
da sieht man den wald vor bäumen nicht..

Verfasst: 6. Juli 2007 12:48
von C_R
Hm das funktioniert bei 15 Vektoren ganz gut, aber bei 30 verwürfelt er da was im Speicher..

Also ich initialisiere 30 Vektoren und verwende erstmal nur ~15

Die letzten 15 sind einfach nur initialisiert und nicht verwendet. Lösche ich diese Initialisierung dieser 15, klappen die restlichen 15..mit den weiteren 15 aber eben nicht.

Verfasst: 6. Juli 2007 13:49
von C_R
Ok, lag dann wohl an was anderem.

Danke für die Hilfe!