<?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[Verwirrender Speicherzugriffsfehler beim erhöhen von Integern]]></title><description><![CDATA[<p>Okay. Nutze C++ unter OpenSuse mit Geany, derzeit für ein kleineres Spiel mit SDL.<br />
Innerhalb des Spieles lese ich ,txt Dateien aus.<br />
Nun habe ich zwei Integer, die beide gleich initiiert werden:</p>
<p>int EnemyNumber = 1;<br />
int Umgebung = 1;</p>
<p>Anschließend lese ich die Textdatei zeile für Zeile aus, kürze die Ausgabe nach dem = Zeichen, und setze die Werte entsprechend, z.B:</p>
<pre><code>if(zeilenspeicher==&quot;Name&quot;)
		  {
			Current.Name=zeilenleser;
			cout &lt;&lt; zeilenleser;
		  }
</code></pre>
<p>Wenn ich nun aber folgendes Eintrage:</p>
<pre><code>if(zeilenspeicher==&quot;ENew&quot;)
		  {
			EnemyNumber++;
			EnemyscriptBuffer=0;
			cout &lt;&lt; zeilenleser;
		  }
</code></pre>
<p>funktioniert das Wunderbar.während:</p>
<pre><code>if(zeilenspeicher==&quot;ONew&quot;)
		  {
			Umgebung++;
			cout &lt;&lt; zeilenleser;
		  }
</code></pre>
<p>Einen Speicherzugriffsfehler erzeugt, und</p>
<pre><code>if(zeilenspeicher==&quot;ONew&quot;)
		  {
			Umgebung=666;
			cout &lt;&lt; zeilenleser;
		  }
</code></pre>
<p>Auch wieder funktioniert-<br />
hat irgendjemand den Hauch einer Ahnung woran soetwas liegen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/315124/verwirrender-speicherzugriffsfehler-beim-erhöhen-von-integern</link><generator>RSS for Node</generator><lastBuildDate>Fri, 31 Jul 2026 11:52:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/315124.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 24 Mar 2013 19:58:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verwirrender Speicherzugriffsfehler beim erhöhen von Integern on Sun, 24 Mar 2013 19:58:40 GMT]]></title><description><![CDATA[<p>Okay. Nutze C++ unter OpenSuse mit Geany, derzeit für ein kleineres Spiel mit SDL.<br />
Innerhalb des Spieles lese ich ,txt Dateien aus.<br />
Nun habe ich zwei Integer, die beide gleich initiiert werden:</p>
<p>int EnemyNumber = 1;<br />
int Umgebung = 1;</p>
<p>Anschließend lese ich die Textdatei zeile für Zeile aus, kürze die Ausgabe nach dem = Zeichen, und setze die Werte entsprechend, z.B:</p>
<pre><code>if(zeilenspeicher==&quot;Name&quot;)
		  {
			Current.Name=zeilenleser;
			cout &lt;&lt; zeilenleser;
		  }
</code></pre>
<p>Wenn ich nun aber folgendes Eintrage:</p>
<pre><code>if(zeilenspeicher==&quot;ENew&quot;)
		  {
			EnemyNumber++;
			EnemyscriptBuffer=0;
			cout &lt;&lt; zeilenleser;
		  }
</code></pre>
<p>funktioniert das Wunderbar.während:</p>
<pre><code>if(zeilenspeicher==&quot;ONew&quot;)
		  {
			Umgebung++;
			cout &lt;&lt; zeilenleser;
		  }
</code></pre>
<p>Einen Speicherzugriffsfehler erzeugt, und</p>
<pre><code>if(zeilenspeicher==&quot;ONew&quot;)
		  {
			Umgebung=666;
			cout &lt;&lt; zeilenleser;
		  }
</code></pre>
<p>Auch wieder funktioniert-<br />
hat irgendjemand den Hauch einer Ahnung woran soetwas liegen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309392</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309392</guid><dc:creator><![CDATA[Mumbo]]></dc:creator><pubDate>Sun, 24 Mar 2013 19:58:40 GMT</pubDate></item><item><title><![CDATA[Reply to Verwirrender Speicherzugriffsfehler beim erhöhen von Integern on Sun, 24 Mar 2013 20:00:35 GMT]]></title><description><![CDATA[<p>Lies dir bitte <a href="http://www.c-plusplus.net/forum/304133" rel="nofollow">das</a> durch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309394</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309394</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 24 Mar 2013 20:00:35 GMT</pubDate></item><item><title><![CDATA[Reply to Verwirrender Speicherzugriffsfehler beim erhöhen von Integern on Sun, 24 Mar 2013 20:19:32 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Lies dir bitte <a href="http://www.c-plusplus.net/forum/304133" rel="nofollow">das</a> durch.</p>
</blockquote>
<p>Das bringt mir wenig, ich suche generell nach Ideen wie soetwas zustande kommt-<br />
die Variable wird bisher an keiner anderen Stelle verwendet, das Problem tritt auch auf wenn die If-Abfrage niemals zutrifft (in der geposteten Form)-<br />
unter welchen Umständen kann ein int nicht flexibel verändert werden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309401</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309401</guid><dc:creator><![CDATA[Mumbo]]></dc:creator><pubDate>Sun, 24 Mar 2013 20:19:32 GMT</pubDate></item><item><title><![CDATA[Reply to Verwirrender Speicherzugriffsfehler beim erhöhen von Integern on Sun, 24 Mar 2013 20:24:46 GMT]]></title><description><![CDATA[<p>Solche Bugs können durch undefiniertes Verhalten entstehen. Mögliche Ursachen sind Array-Überläufe, Dereferenzierung ungültiger Zeiger oder fehlerhafte Verwendung der Speicherverwaltung.</p>
<p>Diese Probleme kannst du massiv eindämmen, wenn du modernes C++ verwendest und Low-Level-Operationen kapselst: RAII, <code>std::array</code> statt Arrays, <code>std::unique_ptr</code> statt <code>new</code> , <code>std::vector</code> statt <code>new[]</code> , <code>std::string</code> statt <code>char*</code> , ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309403</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309403</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 24 Mar 2013 20:24:46 GMT</pubDate></item><item><title><![CDATA[Reply to Verwirrender Speicherzugriffsfehler beim erhöhen von Integern on Sun, 24 Mar 2013 20:44:30 GMT]]></title><description><![CDATA[<p>Danke, das ist auf jeden Fall gut zu Wissen-<br />
bei mir ist dieses Problem gerade ebenso unerklärlich verschwunden wie es zuvor Auftrat (habe gut zwei Stunden daran herumgefrickelt Oo).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309416</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309416</guid><dc:creator><![CDATA[Mumbo]]></dc:creator><pubDate>Sun, 24 Mar 2013 20:44:30 GMT</pubDate></item><item><title><![CDATA[Reply to Verwirrender Speicherzugriffsfehler beim erhöhen von Integern on Sun, 24 Mar 2013 20:48:25 GMT]]></title><description><![CDATA[<p>Mache nicht den Fehler und glaube, dass das Problem behoben sei. Wenn du undefiniertes Verhalten im Programm hast, solltest du es <strong>unbedingt</strong> ausmerzen. Du hast nämlich dein Programm nicht mehr unter Kontrolle. Mehr Code zu schreiben macht es nur noch schwieriger, den Bug zu finden...</p>
<p>Und berücksichtige meinen Hinweis im Bezug auf modernes C++. Ich bin mir fast sicher, dass da nicht alles eingehalten wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309418</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309418</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 24 Mar 2013 20:48:25 GMT</pubDate></item><item><title><![CDATA[Reply to Verwirrender Speicherzugriffsfehler beim erhöhen von Integern on Sun, 24 Mar 2013 20:49:01 GMT]]></title><description><![CDATA[<p>Mumbo schrieb:</p>
<blockquote>
<p>Danke, das ist auf jeden Fall gut zu Wissen-<br />
bei mir ist dieses Problem gerade ebenso unerklärlich verschwunden wie es zuvor Auftrat (habe gut zwei Stunden daran herumgefrickelt Oo).</p>
</blockquote>
<p>Das ist auch normal bei undefiniertem Verhalten. Das heißt aber nicht, dass der Fehler behoben wurde, sondern bloß, dass er sich derzeit nicht (sichtbar) äußert. Erfahrungsgemäß wird sich dies schlagartig wieder ändern, sobald du das vermeintlich fehlerfreie Programm deinem Chef vorführst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309419</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309419</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 24 Mar 2013 20:49:01 GMT</pubDate></item><item><title><![CDATA[Reply to Verwirrender Speicherzugriffsfehler beim erhöhen von Integern on Sun, 24 Mar 2013 20:54:58 GMT]]></title><description><![CDATA[<p>Oder sonst wie verbreitest... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309423</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 24 Mar 2013 20:54:58 GMT</pubDate></item><item><title><![CDATA[Reply to Verwirrender Speicherzugriffsfehler beim erhöhen von Integern on Sun, 24 Mar 2013 21:06:20 GMT]]></title><description><![CDATA[<p>Erstmals nochmal Danke für die Antworten</p>
<p>Nunja, hoffe das es irgendein sehr komischer Fehler war den ich jetzt erfolgreich ausgemerzt habe (wobei eure Vermutung durchaus berechtigt ist - mein Quelltext ist ein gigantischer Verstoß gegen jeden Standard der jemals irgendwo definiert wurde). Bin aber ein absoluter Dilettant &amp; wäre mit sauberem Programierstil heillos überfordert (so frißt z.B. die SDL auch nur char* <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> - bin also schon froh wenn es ungefähr funktioniert - und im Endeffekt habe ich dadurch den Vorteil das Vorführungen beim Chef &amp; jeglicher Zeitdruck weitgehend Entfallen.<br />
Wenn der Fehler wieder auftritt wäre das dementsprechend Schade, aber vielleicht habe ich ja Glück- vorhin kam er wirklich instant bei jedem Aufruf, jetzt kam er immerhin schon ca. 15x in Folge überhaupt nicht ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309432</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309432</guid><dc:creator><![CDATA[Mumbor]]></dc:creator><pubDate>Sun, 24 Mar 2013 21:06:20 GMT</pubDate></item><item><title><![CDATA[Reply to Verwirrender Speicherzugriffsfehler beim erhöhen von Integern on Sun, 24 Mar 2013 21:07:54 GMT]]></title><description><![CDATA[<p>Mumbor schrieb:</p>
<blockquote>
<p>(so frißt z.B. die SDL auch nur char* <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>std::string::c_str() hilft da...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309434</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309434</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 24 Mar 2013 21:07:54 GMT</pubDate></item><item><title><![CDATA[Reply to Verwirrender Speicherzugriffsfehler beim erhöhen von Integern on Sun, 24 Mar 2013 21:15:08 GMT]]></title><description><![CDATA[<p>...oder modernere APIs wie SFML :p</p>
<p>Mumbor, musst du natürlich selber wissen. Mir ist auch klar, dass Refactoren existierender Projekte nicht immer eine Option ist. Ich würde mir aber wenigstens für neue Projekte vornehmen, gewisse Richtlinien zu beachten. <strong>Die Meinung, dass du dadurch mehr Zeit brauchst, ist Irrglaube.</strong> Das Gegenteil ist der Fall: Du musst dir nicht dauernd Gedanken um Speicherverwaltung machen, wenn du RAII benutzt. Du bist schneller in der Entwicklung, Code wird kürzer und besser verständlich, und ist sicherer, ohne dabei an Geschwindigkeit einzubüssen. <strong>Du hast nur Vorteile.</strong></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309438</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 24 Mar 2013 21:15:08 GMT</pubDate></item><item><title><![CDATA[Reply to Verwirrender Speicherzugriffsfehler beim erhöhen von Integern on Sun, 24 Mar 2013 21:17:41 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p><strong>Die Meinung, dass du dadurch mehr Zeit brauchst, ist Irrglaube.</strong> Das Gegenteil ist der Fall: Du musst dir nicht dauernd Gedanken um Speicherverwaltung machen, wenn du RAII benutzt. Du bist schneller in der Entwicklung, Code wird kürzer und besser verständlich, und ist sicherer, ohne dabei an Geschwindigkeit einzubüssen. <strong>Du hast nur Vorteile.</strong></p>
</blockquote>
<p>Nicht zu vergessen: Verwirrende Speicherzugriffsfehler beim Erhöhen von Integern sind ebenfalls so gut wie ausgestorben. Oder falls man doch mal einen hat, dann sind sie sehr viel einfacher zu finden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309439</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309439</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 24 Mar 2013 21:17:41 GMT</pubDate></item><item><title><![CDATA[Reply to Verwirrender Speicherzugriffsfehler beim erhöhen von Integern on Sun, 24 Mar 2013 21:19:45 GMT]]></title><description><![CDATA[<p>Warum gibts eigentlich keinen pointer_wrapper?<br />
Der einem einen Assert um die Ohren haut, wenn man vergessen hat, dem nullptr einen Wert zu geben. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309441</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309441</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 24 Mar 2013 21:19:45 GMT</pubDate></item><item><title><![CDATA[Reply to Verwirrender Speicherzugriffsfehler beim erhöhen von Integern on Sun, 24 Mar 2013 21:34:49 GMT]]></title><description><![CDATA[<p>Nathan schrieb:</p>
<blockquote>
<p>Warum gibts eigentlich keinen pointer_wrapper?<br />
Der einem einen Assert um die Ohren haut, wenn man vergessen hat, dem nullptr einen Wert zu geben. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> Meinst du Referenzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309443</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309443</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 24 Mar 2013 21:34:49 GMT</pubDate></item><item><title><![CDATA[Reply to Verwirrender Speicherzugriffsfehler beim erhöhen von Integern on Sun, 24 Mar 2013 21:49:27 GMT]]></title><description><![CDATA[<p>Nein,ich will einfach nur sicherer variable, ggf ungültige Verweise auf ein Objekt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309445</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309445</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 24 Mar 2013 21:49:27 GMT</pubDate></item><item><title><![CDATA[Reply to Verwirrender Speicherzugriffsfehler beim erhöhen von Integern on Sun, 24 Mar 2013 21:54:07 GMT]]></title><description><![CDATA[<p>Einen Laufzeitfehler a la assert bekommst du doch, wenn du einen falschen Pointer benutzt. Ich verstehe deinen Featurewunsch nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309447</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309447</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 24 Mar 2013 21:54:07 GMT</pubDate></item><item><title><![CDATA[Reply to Verwirrender Speicherzugriffsfehler beim erhöhen von Integern on Mon, 25 Mar 2013 07:58:40 GMT]]></title><description><![CDATA[<p>OK, nochmal besser erklärt.<br />
Ich brauche ab und zu, einen änderbaren und ggf. ungültigen Verweis auf ein anderes Objekt. Dafür muss ich einen (rohen) Pointer nutzen.<br />
Ich hatte mich ewig mit Speicherzugriffsfehlern herum schlagen müssen, weil ich den Pointer vergessen hatte zu initialisieren. Deswegen habe ich mir eine Wrapper-Klasse um einen rohen Pointer geschrieben, der ihn ordnungsgemäß initalisiert und vorm Dereferenzieren via assert() prüft, ob der Pointer einen Wert hat. Wäre schön, wenn es sowas im Standard gäbe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309522</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Mon, 25 Mar 2013 07:58:40 GMT</pubDate></item><item><title><![CDATA[Reply to Verwirrender Speicherzugriffsfehler beim erhöhen von Integern on Mon, 25 Mar 2013 08:03:08 GMT]]></title><description><![CDATA[<blockquote>
<p>vorm Dereferenzieren via assert() prüft, ob der Pointer einen Wert hat.</p>
</blockquote>
<p>Zeiger koennen Werte besitzen, hne dass sie dereferenzierbar sind. Auch gibt es Smart-Pointer, die deinen Wuenschen entsprechen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309523</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309523</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Mon, 25 Mar 2013 08:03:08 GMT</pubDate></item><item><title><![CDATA[Reply to Verwirrender Speicherzugriffsfehler beim erhöhen von Integern on Mon, 25 Mar 2013 08:08:48 GMT]]></title><description><![CDATA[<p>Das einzige, was dafür in Frage kommen würde, wäre std::weak_ptr&lt;&gt;. Alle anderen Pointer löschen die Objekte im Destruktor. Und wenn ich lock() mache um darauf zuzugreifen, wird ein shared_ptr&lt;&gt; erzeugt, was auch überflüssig ist. Ich will einfach nur einen simplen Verweis auf ein Objekt auf dem Stack.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309527</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309527</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Mon, 25 Mar 2013 08:08:48 GMT</pubDate></item></channel></rss>