Probleme mit Speicherüberlauf/Zugriffsverletzung

Assanur

Grünschnabel
Hallo,

ich habe mit der Fkt. new float ein 770*120 Array erstellt
Code:
Array = new float*[770];
		for (k=0; k<770; k++)
		{	
			Array[k] = new float [120];
		}

später in der der Berechnungsschleife werden dem Array Werte zugewiesen, doch dabei gibt es immer um Schritt [300][50] (nicht immer genau aber immer in dem Bereich) einen Fehler der zum Programmabbruch führt und mir folgende Meldung ausgibt:

Unbehandelte Ausnahme bei 0x0041290b in prog1.exe: 0xC0000005: Zugriffsverletzung beim Schreiben an Position 0xfdfdfdfd.

Visual Studio zeigt beim Unterbrechen auf die Zeile bei der Array[k][j]=0; zugewiesen wird.


Kennt jemand das Problem und kann mir sagen was das ist?

Code sieht etwa so aus (stark verkürzt)
Code:
while (SPos[k] > X_P[*AFehler-2])
{
k++;
(mehrere Berechnungen unter anderem auch die Berechnung von SPos[k])
 for (j=0; j<*AFehler; j++)
 {
 (Berechnungen)
 Abtrag_Bahn[k][j] = 0;
  for (i=0; i<Anzahl_i; i++)
  {
  (mehrere Berechnungen)
  if (AbtragP!=0 || AbtragP_neg!=0)
	{
	  Array[k][j]= Array[k][j] + (((AbtragP + AbtragP_neg)/Zeit_A)*(Zeitintervall/1000)); 
	}
  }
 }
}
 
Zuletzt bearbeitet:
Weiß nich wo du j hochzählst ...
0xfdfdfdfd steht fürs Niemandsland ... das sollte NIEMALS überschrieben werden ;) Dann bist du definitiv außerhalb des Arrays.
 
ah das ist ja schonmal interessant, das mit dem Niemandsland, gleich mal überprüfen

edit: oh hab grad gesehen das in meinem code bsp was fehlt/ned passt, änder ich schnell
edit2: so geändert, jetzt passts besser glaub ich. Ich denke du meintest wo ich k hochzähle, das hatt ich vergessen reinzuschreiben, ist jetzt aber drin.
 
Zuletzt bearbeitet:
Zurück