zugriffsverletzung bei doppelzeiger
-
int **puffer_sortierabstand[28][3]; // [objektanzahl[schichtenanzahl]+1][die 2 biggest_values]; int **puffer_tauschen; //sortierzeigerarray zu den biggest rates zeigen for(int bild=1;bild<=bildanzahl;++bild) { puffer_sortierabstand[bild][1]=&biggest_rates[bild+1][bild][1]; puffer_sortierabstand[bild][2]=&biggest_rates[bild+1][bild][2]; } // nach abstand sortieren (die kleinsten abstände zuerst)(bubblesort, die blasen blubbern nach oben) for(int bild=1;bild<=bildanzahl;++bild) // schleife über zu sortierenden bereich { for(int unsortiert=bildanzahl;unsortiert>=bild;--unsortiert) // schleife über noch unsortierten bereich (fängt bei jeder ausführung einen index später an, zählt aber immer bis zum letzten index, wird also 1 kleiner) { if(**puffer_sortierabstand[unsortiert][1]-**puffer_sortierabstand[unsortiert][2]<**puffer_sortierabstand[unsortiert-1][1]-**puffer_sortierabstand[unsortiert-1][2]) //tauschen wenn der abstand der größten feuerraten des vorherigen index größer als der des aktuellen { for(int bigness=1;bigness<=2;++bigness) // größten und zweitgrößten wert auf gleichen beispielbilderindex tauschen { puffer_tauschen=puffer_sortierabstand[unsortiert-1][bigness]; // hilfszeiger erhält die adresse des vorherigen index puffer_sortierabstand[unsortiert-1][bigness]=puffer_sortierabstand[unsortiert][bigness]; // vorheriger index = aktueller index (verschieben nach oben(funktionell hätte man es auch so schreiben können daß es an der stelle nach unten verschoben wird und die blasen trotzdem nach oben blubbern)) puffer_sortierabstand[unsortiert][bigness]=puffer_tauschen; // aktueller index erhält die adresse des vorherigen index } } } }nanu bei dem if erhalte ich diese meldung:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Test.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 0040292D in Modul 'Test.exe'. Lesen von Adresse 900020C2'. Prozeß wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------der doppelzeiger zeigt auf einen zeiger der auf arraydaten zeigt.
hmm wenn ich nen einfachen zeiger draus mache bekomme ich immernoch das:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Test.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 00402914 in Modul 'Test.exe'. Lesen von Adresse 0000BC4E'. Prozeß wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------
-
scheint so als kommt er gegen schleifenende bei unsortiert-1 gegen schleifenende auf -1.
scheint weiter so als würde ich es ohne hilfe hinbekommen.