<?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[Absturz durch falsche Adresse verhindern. Aber wie?]]></title><description><![CDATA[<p>Guten Tag,<br />
Ich habe ein kleines Programm geschrieben, bei dem man eine Arbeitsspeicher-<br />
Adresse eingeben kann und es dann den Wert der betreffenden Adresse ausgibt.<br />
Hier ist der Code-Ausschnitt:</p>
<pre><code class="language-cpp">//..
int adresse=0;
cout &gt;&gt; &quot;Geben sie eine Adresse ein: &quot;;
cin &gt;&gt; adresse;
int *p = (int*)(adresse); // Adresse von oben
cout &lt;&lt; *p &lt;&lt; endl; // Wert ausgeben
// ...
</code></pre>
<p>Wenn ich jetzt eine Adresse eingebe die nicht benutzt wird oder auf die nicht<br />
zu gegriffen werden kann, da ich kein WinApi benutze, stürzt das Programm ab.<br />
Ich wollte Sie nun fragen ob es eine Möglichkeit gibt die Lesbarkeit der<br />
Adresse zu überprüfen bevor das Programm versucht sie auszulesen und damit den<br />
Absturz zuvermeiden.<br />
Vielen Dank schon mal.<br />
Mit freundlichen Grüßen<br />
MorphysX</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/302121/absturz-durch-falsche-adresse-verhindern-aber-wie</link><generator>RSS for Node</generator><lastBuildDate>Tue, 11 Aug 2026 17:17:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/302121.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 11 Apr 2012 16:34:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Absturz durch falsche Adresse verhindern. Aber wie? on Wed, 11 Apr 2012 16:34:57 GMT]]></title><description><![CDATA[<p>Guten Tag,<br />
Ich habe ein kleines Programm geschrieben, bei dem man eine Arbeitsspeicher-<br />
Adresse eingeben kann und es dann den Wert der betreffenden Adresse ausgibt.<br />
Hier ist der Code-Ausschnitt:</p>
<pre><code class="language-cpp">//..
int adresse=0;
cout &gt;&gt; &quot;Geben sie eine Adresse ein: &quot;;
cin &gt;&gt; adresse;
int *p = (int*)(adresse); // Adresse von oben
cout &lt;&lt; *p &lt;&lt; endl; // Wert ausgeben
// ...
</code></pre>
<p>Wenn ich jetzt eine Adresse eingebe die nicht benutzt wird oder auf die nicht<br />
zu gegriffen werden kann, da ich kein WinApi benutze, stürzt das Programm ab.<br />
Ich wollte Sie nun fragen ob es eine Möglichkeit gibt die Lesbarkeit der<br />
Adresse zu überprüfen bevor das Programm versucht sie auszulesen und damit den<br />
Absturz zuvermeiden.<br />
Vielen Dank schon mal.<br />
Mit freundlichen Grüßen<br />
MorphysX</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200864</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200864</guid><dc:creator><![CDATA[MorphysX]]></dc:creator><pubDate>Wed, 11 Apr 2012 16:34:57 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz durch falsche Adresse verhindern. Aber wie? on Wed, 11 Apr 2012 17:18:10 GMT]]></title><description><![CDATA[<p>du könntest ein try { } catch benutzen, aber was soll das Programm überhaupt machen?</p>
<p>greetz KN4CK3R</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200885</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200885</guid><dc:creator><![CDATA[KN4CK3R]]></dc:creator><pubDate>Wed, 11 Apr 2012 17:18:10 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz durch falsche Adresse verhindern. Aber wie? on Wed, 11 Apr 2012 17:29:46 GMT]]></title><description><![CDATA[<p>Danke für die Antwort ich werde es gleich mal probieren und auf deine Frage zu<br />
antworten. Das Programm soll aus seinem eigenen Arbeitsspeicher-Bereicht den Wert<br />
einer bestimmten Adresse ausgeben (Die vorher eingeben wird). Ich weiß das klingt<br />
nicht sinnvoll aber es ist auch nur ein Versuch um später auf dieser Basis ein<br />
größeres Projekt zu starten.</p>
<p>Grüße<br />
MorphysX</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200888</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200888</guid><dc:creator><![CDATA[MorphysX]]></dc:creator><pubDate>Wed, 11 Apr 2012 17:29:46 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz durch falsche Adresse verhindern. Aber wie? on Wed, 11 Apr 2012 18:17:42 GMT]]></title><description><![CDATA[<p>klingt im kleinen Programm nicht sinnvoll und im größeren schon gar nicht...</p>
<p>greetz KN4CK3R</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200904</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200904</guid><dc:creator><![CDATA[KN4CK3R]]></dc:creator><pubDate>Wed, 11 Apr 2012 18:17:42 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz durch falsche Adresse verhindern. Aber wie? on Wed, 11 Apr 2012 18:23:28 GMT]]></title><description><![CDATA[<p>KN4CK3R schrieb:</p>
<blockquote>
<p>du könntest ein try { } catch benutzen</p>
</blockquote>
<p>Nein. Wie soll das funktionieren? Welche Exception wird geworfen?</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/28157">@MorphysX</a><br />
Auf eine Adresse die nicht dir &quot;gehört&quot; zuzugreifen ist undefiniertes Verhalten, im besten Fall stürzt das Programm einfach ab. (Vielleicht bestellt es auch eine leckere Pizza für Dich. ;))</p>
<p>Soweit ich weiß, gibt es keinen Standardkonformen weg, Adressen darauf zu überprüfen, ob du darauf zugreifen darfst. Insofern wirst du um Systemfunktionen nicht herum kommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200907</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200907</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Wed, 11 Apr 2012 18:23:28 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz durch falsche Adresse verhindern. Aber wie? on Wed, 11 Apr 2012 18:27:12 GMT]]></title><description><![CDATA[<p>Also ich habe dein Vorschlag getestet leider hat er nicht geholfen, denn so bald<br />
das Programm versucht den Wert auszugeben stürzt es immer noch ab mit try {}<br />
catch oder ohne. Ja, mag für außenstehende wirklich so scheinen aber ich habe mir<br />
da schon eine sinnvolle verwendung einfallen lassen. Aber wenn es so weiter geht<br />
sehe ich mich doch gezwungen WinApi zu nutzen. Oder hat sonst noch jemand einen<br />
Vorschlag wie man das oben beschriebene Problem umgehen könnte?</p>
<p>grüße MorphysX</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200908</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200908</guid><dc:creator><![CDATA[MorphysX]]></dc:creator><pubDate>Wed, 11 Apr 2012 18:27:12 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz durch falsche Adresse verhindern. Aber wie? on Wed, 11 Apr 2012 18:37:56 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/25760">@cooky451</a><br />
Das Programm soll ja auch gar nicht auf Arbeitsspeicher-Adressen zu greifen die<br />
von einem anderen Programm belegt sind. Sondern nur auf seine eigenen. Das<br />
Problem ist es erkennt nicht welche zu ihm gehören und welche nicht und das<br />
Problem ist es was ich lösen möcht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200912</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200912</guid><dc:creator><![CDATA[MorphysX]]></dc:creator><pubDate>Wed, 11 Apr 2012 18:37:56 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz durch falsche Adresse verhindern. Aber wie? on Wed, 11 Apr 2012 18:39:59 GMT]]></title><description><![CDATA[<p>Wie gesagt, ich denke nicht, dass du die Adressen auf die du zugreifen darfst irgendwie identifizieren kannst. (Mit der WinAPI geht das natürlich.)</p>
<p>Allerdings frage ich mich auch, wozu das gut sein soll..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200914</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200914</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Wed, 11 Apr 2012 18:39:59 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz durch falsche Adresse verhindern. Aber wie? on Wed, 11 Apr 2012 18:52:13 GMT]]></title><description><![CDATA[<p>Okay, danke das ihr mir weiter geholfen habt. Dann werde ich mal mein Programm ändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200915</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200915</guid><dc:creator><![CDATA[MorphysX]]></dc:creator><pubDate>Wed, 11 Apr 2012 18:52:13 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz durch falsche Adresse verhindern. Aber wie? on Wed, 11 Apr 2012 19:52:03 GMT]]></title><description><![CDATA[<p>cooky451 schrieb:</p>
<blockquote>
<p>KN4CK3R schrieb:</p>
<blockquote>
<p>du könntest ein try { } catch benutzen</p>
</blockquote>
<p>Nein. Wie soll das funktionieren? Welche Exception wird geworfen?</p>
</blockquote>
<p>macht das nicht IsBadReadPtr aus der WinAPI so? Falls nicht, ziehe ich meine Antwort von vorhin zurück.</p>
<p>greetz KN4CK3R</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200936</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200936</guid><dc:creator><![CDATA[KN4CK3R]]></dc:creator><pubDate>Wed, 11 Apr 2012 19:52:03 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz durch falsche Adresse verhindern. Aber wie? on Wed, 11 Apr 2012 20:02:31 GMT]]></title><description><![CDATA[<p>KN4CK3R schrieb:</p>
<blockquote>
<p>macht das nicht IsBadReadPtr aus der WinAPI so? Falls nicht, ziehe ich meine Antwort von vorhin zurück.</p>
</blockquote>
<p>Hä? Seit wann ist irgendein Befehl der WinAPI im Standard verankert? Er hat doch explizit nach <strong>nicht</strong> WinAPI Lösungen gefragt. Und den Aufruf hätte man vielleicht in der Antwort erwähnen sollen, da stand nur try/catch. Und nein, die Funktion wirft natürlich auch keine Exception.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200940</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Wed, 11 Apr 2012 20:02:31 GMT</pubDate></item></channel></rss>