B&R Laufzeitfehler

knuppel

Level-1
Beiträge
189
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, ich habe folgendes Programm in einem 1000ms Task laufen http://pastebin.com/X4WRHudi

Das Programm liest unter anderem eine Textdatei aus, die Zeichen werden als ASCII Code eingelesen.
Eine Schleife soll den eingelesenen Array in ein 2-Dimensionales Array schreiben. Sobald im Ausgangsarray eine 10 (Zeilenumbruch) ist, wird die nächste Zeile des 2-dimensionelen Arrays beschrieben. Siehe Zeile 36-50.

In meiner Ar Simulation kommt es zu einem Laufzeitfehler "$arlogsys:ERROR 25300, lpBin=0x04644fd8, ARLOG_LEVEL_FATAL, "DebugDprTask", "".

Sobald ich die Zeilen s=0; und s++; in der Schleife entferne bleibt der Laufzeitfehler aus...

Hat jemand eine Idee?
 
Bei Standard C ist der Wert von s bei den ersten Durchläufen undefiniert, d.h. muss nicht unbedingt 0 sein.
Dann überprüfst du nicht, ob j und s innerhalb der gültigen Grenzen der Arraygröße sind. Wenn nach 30 Werten in byReadData noch keine 10 gekommen ist, schreibst du über die Arraygrenzen hinaus. Entweder an eine falsche Stelle im Speicher des Arrays, oder in einen komplett anderen Speicherbereich.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hab doch vor der Schleife s,i,j=0 gestetzt.

Das andere leuchtet mit ein, wenn keine 10 mehr kommt hab ich einen Überlauf, dafür hab ich ein break; eingefügt:
Code:
	int i,j,s=0;	for(i=0;i<=100;i++)
	{
		if(byReadData[i]==0)break;
		if(byReadData[i]==10){
			j=j+1;
			s=0;
		
		}
		else
		{
			device[j][s]=(STRING)byReadData[i];
			s=s+1;
			
		}
	}

Trotzdem kommt ein Laufzeitfehler.
 
Zurück
Oben