Hallo

Ich vermute, weil ich es im Moment nicht testen kann, dass hier der Fehler liegt:

}while (rows++ <zeilen);

Die innere while(lines--)-Schleife wird 32 mal durchlaufen, aber die Spaltenschleife 33 mal! row startet zwar mit 0 im ersten Durchgang, beendet aber nicht nach row==31 sondern führt noch einen Durchgang mit row==32 aus. Somit werden 32*33 Bytes eingelesen und die Zeiger schiessen aus dem 1K-Array. Warum ich das nicht selbst bemerkte ist mir schleierhaft, vielleicht liegt das wirklich am unterschiedlichen Speicheraufbau der GCC-Versionen. Oder an einem anderen Unterschied der meine Motorvariablen ausserhalb des Gefahrenbereichs anlegt. Lösung wäre einfach:

}while (++rows <zeilen);

Gruß

mic