[gelößt]Absturz bei Zugriff auf QStringList [Guten Morgen]
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
[gelößt]Absturz bei Zugriff auf QStringList [Guten Morgen]
Hallo, wenn ich auf QString.split("",QString::SkipEmptyParts)
Zugreifen will stürzt das ganze Programm ab.
Unbehandelte Ausnahme bei 0x67082cd6 (QtCored4.dll) in Lottozahlen.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x558b23f3.
Laut Debugger soll in der Datei QString.cpp Zeile 2043 liegen.
Dort steht:
int QString::indexOf(const QString &str, int from, Qt::CaseSensitivity cs) const
{
const int l = d->size; <------Zeile 2043
const int sl = str.d->size;
if (from < 0)
from += l;
if (uint(sl + from) > (uint)l)
return -1;
if (!sl)
return from;
if (!l)
Ich nutze Qt 4.3.4.
Hat jemand eine Idee was da schief geht?
Wenn nötig kann ich auch das ganze Projekt schicken.
Zugreifen will stürzt das ganze Programm ab.
Unbehandelte Ausnahme bei 0x67082cd6 (QtCored4.dll) in Lottozahlen.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x558b23f3.
Laut Debugger soll in der Datei QString.cpp Zeile 2043 liegen.
Dort steht:
int QString::indexOf(const QString &str, int from, Qt::CaseSensitivity cs) const
{
const int l = d->size; <------Zeile 2043
const int sl = str.d->size;
if (from < 0)
from += l;
if (uint(sl + from) > (uint)l)
return -1;
if (!sl)
return from;
if (!l)
Ich nutze Qt 4.3.4.
Hat jemand eine Idee was da schief geht?
Wenn nötig kann ich auch das ganze Projekt schicken.
Zuletzt geändert von BartSimpson am 28. März 2008 13:10, insgesamt 1-mal geändert.
-
PeterLustig
- Beiträge: 386
- Registriert: 21. November 2007 20:07
-
ConfusedSushi
- Beiträge: 57
- Registriert: 18. Januar 2008 16:46
- Wohnort: Berlin
-
PeterLustig
- Beiträge: 386
- Registriert: 21. November 2007 20:07
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
Hallo,
Das sind alles nur Zeiger, auf QStrings.
Aber zusammengefasst sieht der Code so aus:
QString foo="1234";
QStringList baar=foo.split("",QString::SkipEmptyParts);
qDebug()<<baar;
ein einem Testprojekt geht das auch Prima.
Nur wenn man das ganze mit Zeigern macht geht es schief:(
Es werde den Code mal einpacken und genau Beschreiben, wie man zu der Stelle kommt wo es kracht. Kann ich jede ein besseres Bild machen.
Das sind alles nur Zeiger, auf QStrings.
Aber zusammengefasst sieht der Code so aus:
QString foo="1234";
QStringList baar=foo.split("",QString::SkipEmptyParts);
qDebug()<<baar;
ein einem Testprojekt geht das auch Prima.
Nur wenn man das ganze mit Zeigern macht geht es schief:(
Es werde den Code mal einpacken und genau Beschreiben, wie man zu der Stelle kommt wo es kracht. Kann ich jede ein besseres Bild machen.
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
So anbei das Projekt
Reproduzieren lässt sich das ganze wie folgt:
Wenn die Daten von der Webseite geladen sind, auf Auswertung klicken.
Dort denn alle 4 Checkboxen ankreuzen.
Die Stelle wo der Code Steht der Probleme macht ist:
Auswertung.cpp
Die Zeilen wo auf den Zeiger zugegriffen wird.
Würde mich echt freuen wenn jemand ein Fehler sieht und es nicht an Qt liegt. Der Fehler läßt sich unter Linux und Windows reproduzieren.
Reproduzieren lässt sich das ganze wie folgt:
Wenn die Daten von der Webseite geladen sind, auf Auswertung klicken.
Dort denn alle 4 Checkboxen ankreuzen.
Die Stelle wo der Code Steht der Probleme macht ist:
Auswertung.cpp
Die Zeilen wo auf den Zeiger zugegriffen wird.
Würde mich echt freuen wenn jemand ein Fehler sieht und es nicht an Qt liegt. Der Fehler läßt sich unter Linux und Windows reproduzieren.
- Dateianhänge
-
- Lottozahlen.7z
- Das Projekt
- (23.35 KiB) 204-mal heruntergeladen
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Code: Alles auswählen
K_DlgAuswertung=new DlgAuswertung(K_Spielwoche,this);
K_Webseite=new Lottoseite(this);
K_Spielwoche=new Spielwoche();
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Playing with pointers is like playing with fire..
Edit:
da war jemand schneller
Code: Alles auswählen
K_DlgInfo=new DlgInfo(this);
K_DlgAuswertung=new DlgAuswertung(K_Spielwoche,this);
K_Webseite=new Lottoseite(this);
K_Spielwoche=new Spielwoche();
Edit:
da war jemand schneller
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
Ich hätte ja auch gerne gesucht, aber es funktioniert nicht, wenn man hinter einem Proxy sitzt. Kommt das noch?BartSimpson hat geschrieben:So anbei das Projekt
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.