<?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[[Gelöst] Was ist eine Access Violation und wie behebe ich sie?]]></title><description><![CDATA[<p>Hallo zusammen,<br />
ich bin jetzt soweit, dass ich eine beträchtliche Menge Code geschreiben habe (für mich sind ~3000 Zeilen viel). Leider spuckt mein Programm ziemlich sofort, nachdem ich das Debuggen gestartet habe, eine Access Violation aus.<br />
Ich weiß ansatzweise, was das ist (ein Teil meines Programmes greift auf einen Speicherbereich zu, der mir nicht gehört). Doch was heißt, dass er mir nicht gehört? Ich habe keine Speicherverwaltung a la malloc() verwendet. MUSS ich das? (Bitte entschuldigt, wenn meine Frage irgendwie banal ist und ich wahrscheinlich absolut keine Ahnung habe, wie Speicherverwaltung angeht)<br />
Der Großteil des Programmes besteht aus Klassen- und struct-Definitionen, nur ein kleiner Teil ist das wahre Procedere.<br />
Wenn die Access Violation auftritt, ist neben einer Codezeile ein kleiner grüner Pfeil. Ist diese Codestelle dann die, die ausgeführt wurde und bei der das Problem auftrat oder die Stelle, die eigentlich als nächstes ausgeführt werden müsste (Visual Studio 2008 Pro)?<br />
Wenn ich weiß, welche Codezeile der Verursacher ist, wie kann ich das Problem beheben?</p>
<p>Vielen Dank schon Mal im Voraus und ein schönes Wochenende,<br />
Gruß,<br />
Lauritz</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/267712/gelöst-was-ist-eine-access-violation-und-wie-behebe-ich-sie</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 07:57:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/267712.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 28 May 2010 19:36:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [Gelöst] Was ist eine Access Violation und wie behebe ich sie? on Sat, 29 May 2010 06:51:15 GMT]]></title><description><![CDATA[<p>Hallo zusammen,<br />
ich bin jetzt soweit, dass ich eine beträchtliche Menge Code geschreiben habe (für mich sind ~3000 Zeilen viel). Leider spuckt mein Programm ziemlich sofort, nachdem ich das Debuggen gestartet habe, eine Access Violation aus.<br />
Ich weiß ansatzweise, was das ist (ein Teil meines Programmes greift auf einen Speicherbereich zu, der mir nicht gehört). Doch was heißt, dass er mir nicht gehört? Ich habe keine Speicherverwaltung a la malloc() verwendet. MUSS ich das? (Bitte entschuldigt, wenn meine Frage irgendwie banal ist und ich wahrscheinlich absolut keine Ahnung habe, wie Speicherverwaltung angeht)<br />
Der Großteil des Programmes besteht aus Klassen- und struct-Definitionen, nur ein kleiner Teil ist das wahre Procedere.<br />
Wenn die Access Violation auftritt, ist neben einer Codezeile ein kleiner grüner Pfeil. Ist diese Codestelle dann die, die ausgeführt wurde und bei der das Problem auftrat oder die Stelle, die eigentlich als nächstes ausgeführt werden müsste (Visual Studio 2008 Pro)?<br />
Wenn ich weiß, welche Codezeile der Verursacher ist, wie kann ich das Problem beheben?</p>
<p>Vielen Dank schon Mal im Voraus und ein schönes Wochenende,<br />
Gruß,<br />
Lauritz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1903882</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1903882</guid><dc:creator><![CDATA[LauritzG]]></dc:creator><pubDate>Sat, 29 May 2010 06:51:15 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Was ist eine Access Violation und wie behebe ich sie? on Fri, 28 May 2010 19:39:53 GMT]]></title><description><![CDATA[<p>LauritzG schrieb:</p>
<blockquote>
<p>Wenn ich weiß, welche Codezeile der Verursacher ist, wie kann ich das Problem beheben?</p>
</blockquote>
<p>Den Fehler entfernen zum Beispiel?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1903883</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1903883</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Fri, 28 May 2010 19:39:53 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Was ist eine Access Violation und wie behebe ich sie? on Fri, 28 May 2010 19:40:08 GMT]]></title><description><![CDATA[<p>Access Violation ist ein Zugriffsfehler im Speicher. Du greifst auf Speicher zu, der dir nicht gehört.</p>
<p>Dies kannst du auf verschiedene Arten realisieren... Die häufigste ist wohl, dass du durch Zeiger-Manipulation auf ungültigen Speicher zugreifst. Dazu gehört ebenfalls das Zugreifen auf einen ungültigen Index vom Array, z.B.<br />
int arr[5];<br />
arr[5] &lt;-- Ungültiger Index!! Kann Access Violation verursachen, muss es aber nicht. Ist auf jedem Fall fehlerhafter Code.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1903884</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1903884</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Fri, 28 May 2010 19:40:08 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Was ist eine Access Violation und wie behebe ich sie? on Fri, 28 May 2010 19:48:57 GMT]]></title><description><![CDATA[<p>Aber ich muss nichts mit malloc() und KOnsorten allokieren? Weil einen ungültigen Index habe ich ziemlich sicher nicht genommen (for(int i = 0; i &lt; [Anzahl der Indizes]; i++)).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1903888</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1903888</guid><dc:creator><![CDATA[LauritzG]]></dc:creator><pubDate>Fri, 28 May 2010 19:48:57 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Was ist eine Access Violation und wie behebe ich sie? on Fri, 28 May 2010 19:54:29 GMT]]></title><description><![CDATA[<p>Nein, du musst nichts mit malloc() (C-Funktion!) oder new allokieren, um eine Access Violation zu bekommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1903891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1903891</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Fri, 28 May 2010 19:54:29 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Was ist eine Access Violation und wie behebe ich sie? on Fri, 28 May 2010 19:56:55 GMT]]></title><description><![CDATA[<p>3000 Zeilen Code<br />
Visual Studio 2008 Pro<br />
keine Ahnung was da passiert?</p>
<p>irgendwas versteh ich hier nicht...</p>
<p>aber ok. poste doch mal die zeile die die av wirft.</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1903892</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1903892</guid><dc:creator><![CDATA[Barados]]></dc:creator><pubDate>Fri, 28 May 2010 19:56:55 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Was ist eine Access Violation und wie behebe ich sie? on Fri, 28 May 2010 20:12:08 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">InitializeCriticalSection(&amp;system-&gt;cs);
</code></pre>
<p>An dieser Stelle kommt dann die av.<br />
system ist ein Member der gleichen Klasse wie die Funktion, in der diese Zeile vorkommt. Innerhalb von system gibt es ein Member namens cs, eine critical section.<br />
Gruß<br />
Lauritz</p>
<p>PS: Wegen malloc bin ich beruhigt... Habe keine Ahnung davon... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1903896</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1903896</guid><dc:creator><![CDATA[LauritzG]]></dc:creator><pubDate>Fri, 28 May 2010 20:12:08 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Was ist eine Access Violation und wie behebe ich sie? on Fri, 28 May 2010 20:20:41 GMT]]></title><description><![CDATA[<p>Ich dachte du allokierst nichts selbst? Da du den -&gt; Operator benutzt, muss es sich bei system um einen Zeiger handeln. Dieser Zeiger muss ja auf irgend etwas zeigen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1903900</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1903900</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Fri, 28 May 2010 20:20:41 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Was ist eine Access Violation und wie behebe ich sie? on Sat, 29 May 2010 06:50:49 GMT]]></title><description><![CDATA[<p>Haha... ich glaube, dank deiner Hilfe, Janjan, habe ich mein Problem gerade selber gelöst. In der Klasse, in der alle Funktionen drin waren, war g_sys nur ein Zeiger, dessen Inhalt man noch festlegen musste. Jetzt habe ich in main.cpp</p>
<pre><code class="language-cpp">systemstruct mysystem;
program.system = &amp;mysystem;
</code></pre>
<p>Und es funktioniert (Soweit ich weiß, weil der nächste Fehler schon an die Tür klopft, da scheine ich wohl was mit vsprintf falsch gemacht zu haben (Debug Assertion failed)).<br />
Vielen vielen Dank euch allen! Ihr habt mir sehr geholfen!<br />
Gruß<br />
Lauritz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1903978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1903978</guid><dc:creator><![CDATA[LauritzG]]></dc:creator><pubDate>Sat, 29 May 2010 06:50:49 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Was ist eine Access Violation und wie behebe ich sie? on Sat, 29 May 2010 18:50:33 GMT]]></title><description><![CDATA[<p>so ein fehler &lt;kann&gt; auftreten, wenn z.b. der zeiger länger lebt, als<br />
das objekt auf das es zeigt. in deinem beispiel zeigt der zeiger auf eine<br />
lokale variable. sobald die funktion zu ende ist, wird die struktur ungültig.</p>
<p>da du aber noch ein zeiger auf das teil hast, geht der zugriff darauf<br />
schief.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1904233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1904233</guid><dc:creator><![CDATA[E--]]></dc:creator><pubDate>Sat, 29 May 2010 18:50:33 GMT</pubDate></item></channel></rss>