<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[zugriffsverletzung bei doppelzeiger]]></title><description><![CDATA[<pre><code class="language-cpp">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&lt;=bildanzahl;++bild)
  {
  puffer_sortierabstand[bild][1]=&amp;biggest_rates[bild+1][bild][1];
  puffer_sortierabstand[bild][2]=&amp;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&lt;=bildanzahl;++bild) // schleife über zu sortierenden bereich
  {
  for(int unsortiert=bildanzahl;unsortiert&gt;=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]&lt;**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&lt;=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
        }
      }
    }
  }
</code></pre>
<p>nanu bei dem if erhalte ich diese meldung:</p>
<p>---------------------------<br />
Benachrichtigung über Debugger-Exception<br />
---------------------------<br />
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.<br />
---------------------------<br />
OK Hilfe<br />
---------------------------</p>
<p>der doppelzeiger zeigt auf einen zeiger der auf arraydaten zeigt.</p>
<p>hmm wenn ich nen einfachen zeiger draus mache bekomme ich immernoch das:</p>
<p>---------------------------<br />
Benachrichtigung über Debugger-Exception<br />
---------------------------<br />
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.<br />
---------------------------<br />
OK Hilfe<br />
---------------------------</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/191622/zugriffsverletzung-bei-doppelzeiger</link><generator>RSS for Node</generator><lastBuildDate>Mon, 17 Aug 2026 18:31:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/191622.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 05 Sep 2007 03:01:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to zugriffsverletzung bei doppelzeiger on Wed, 05 Sep 2007 04:04:15 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">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&lt;=bildanzahl;++bild)
  {
  puffer_sortierabstand[bild][1]=&amp;biggest_rates[bild+1][bild][1];
  puffer_sortierabstand[bild][2]=&amp;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&lt;=bildanzahl;++bild) // schleife über zu sortierenden bereich
  {
  for(int unsortiert=bildanzahl;unsortiert&gt;=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]&lt;**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&lt;=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
        }
      }
    }
  }
</code></pre>
<p>nanu bei dem if erhalte ich diese meldung:</p>
<p>---------------------------<br />
Benachrichtigung über Debugger-Exception<br />
---------------------------<br />
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.<br />
---------------------------<br />
OK Hilfe<br />
---------------------------</p>
<p>der doppelzeiger zeigt auf einen zeiger der auf arraydaten zeigt.</p>
<p>hmm wenn ich nen einfachen zeiger draus mache bekomme ich immernoch das:</p>
<p>---------------------------<br />
Benachrichtigung über Debugger-Exception<br />
---------------------------<br />
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.<br />
---------------------------<br />
OK Hilfe<br />
---------------------------</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1359109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1359109</guid><dc:creator><![CDATA[fuse]]></dc:creator><pubDate>Wed, 05 Sep 2007 04:04:15 GMT</pubDate></item><item><title><![CDATA[Reply to zugriffsverletzung bei doppelzeiger on Fri, 07 Sep 2007 04:10:03 GMT]]></title><description><![CDATA[<p>scheint so als kommt er gegen schleifenende bei unsortiert-1 gegen schleifenende auf -1.<br />
scheint weiter so als würde ich es ohne hilfe hinbekommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1360531</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1360531</guid><dc:creator><![CDATA[fuse]]></dc:creator><pubDate>Fri, 07 Sep 2007 04:10:03 GMT</pubDate></item></channel></rss>