Seite 1 von 1

speicherzugriffsfehler beim zugriff auf funktion

Verfasst: 23. April 2008 23:10
von Linuxguru
hallo,

fehler wie oben beschrieben.

hier erstmal etwas code:

Code: Alles auswählen

void tool::function()
{
	QFile file( "/proc/mounts" );

	if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
		return;

	QTextStream ts( &file );
	QString fileLine;

	do
	{
		fileLine = ts.readLine();
		QStringList list = fileLine.split( " ", QString::SkipEmptyParts  );
		QString mountPoint =  list[0];
		if( mountPoint == "/dev/hda6" )
			QMessageBox::information( this, "", list[2] );
	}
	while (!fileLine.isNull());
}


Kann das evtl. jemand nachvollziehen??

danke

Verfasst: 23. April 2008 23:53
von honda71
Ohne das ganze nun wirklich selber getestet zu haben, scheint mir die Zeile:

Code: Alles auswählen

 QString mountPoint =  list[0]; 
verdächtig.

Was passiert, wenn eine Leerzeile gelesen wurde? Dann dürfte das Array list keine Elemente beinhalten (da split mit SkipEmptyParts ausgeführt wird).

Eine kleine Sicherheitsabfrage könnte da schon helfen:

Code: Alles auswählen

 if (list.count())
  QString mountPoint =  list[0]; 
Das selbe gilt auch für die spätere Abfrage, ob das erste Elment "/dev/hda6" lautet. Im Anschluss wird ohne Prüfung auf das 3te Element zugegriffen. Das könnte auch ins Auge gehen...

Gruß

Oli

Verfasst: 24. April 2008 09:03
von upsala
Oder

Code: Alles auswählen

list.value(0)