<?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[Speicherschutzverletzung!]]></title><description><![CDATA[<p>Hallo, ich möchte ein Programm schreiben, das über eine Struktur Werte einlesen kann, die in einem lokal vereinbarten Feld abgelegt werden.</p>
<p>Ich habe bereits einen Zeiger auf die Struktur gelegt, um später eine Liste anlegen zu können.</p>
<p>Zunächst möchte ich aber einfach nur drei werte für eine Kiste einlesen, anhand dieser Werte das Volumen ausrechnen und die Eingabe wiedergeben.</p>
<p>Allerdings bekomme ich immer wieder eine speicherschutzverletzung und kann anhand der Fehlermeldung nicht erkennen warum ich diese bekomme. Außerdem bekomme ich eine Warnung vom Compiler angezeigt.</p>
<p>KANN MIR BITTE JEMAND HELFEN?</p>
<p>------------------------------WARNUNG-------------------------------------<br />
cpp(26) : warning C4700: Die nicht initialisierte lokale Variable &quot;aKiste&quot; wurde verwendet.<br />
--------------------------------------------------------------------------</p>
<p>Hier das Listing mit der entsprechenden Fehlermeldung:</p>
<p>-------------------------LISTING---------------------------<br />
#include &quot;stdafx.h&quot;</p>
<p>using namespace System;</p>
<p>struct kiste {</p>
<p>Single hoehe;<br />
Single breite;<br />
Single laenge;<br />
Single volumen;<br />
Int32 kistennummer;<br />
kiste *next;</p>
<p>};</p>
<p>kiste einlesen(Int32 kistennummer) {</p>
<p>kiste *aKiste;</p>
<p>Console::Write(&quot;\n\nKiste: {0}&quot;, kistennummer);<br />
aKiste-&gt;kistennummer=kistennummer;//cpp(26)[u]</p>
<p>Console::Write(&quot;Geben Sie die Höhe ein: &quot;);<br />
aKiste-&gt;hoehe=Convert::ToSingle(Console::ReadLine());</p>
<p>Console::Write(&quot;Geben Sie die Breite ein: &quot;);<br />
aKiste-&gt;breite=Convert::ToSingle(Console::ReadLine());</p>
<p>Console::Write(&quot;Geben Sie die Länge ein: &quot;);<br />
aKiste-&gt;laenge=Convert::ToSingle(Console::ReadLine());</p>
<p>aKiste-&gt;volumen=aKiste-&gt;hoehe*aKiste-&gt;breite*aKiste-&gt;laenge;<br />
Console::Write(&quot;\nVolumen: {0}&quot;, aKiste-&gt;volumen);</p>
<p>return(*aKiste);</p>
<p>}</p>
<p>int main(array&lt;System::String ^&gt; ^args)<br />
{<br />
kiste lagerraum[100];</p>
<p>for(Int32 schleife=0; schleife&lt;2; schleife++)<br />
lagerraum[schleife]=einlesen(schleife+1);</p>
<p>return 0;<br />
}<br />
--------------------------------------------------------------------------</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/257379/speicherschutzverletzung</link><generator>RSS for Node</generator><lastBuildDate>Thu, 10 Sep 2026 06:25:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/257379.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 27 Dec 2009 18:11:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Speicherschutzverletzung! on Sun, 27 Dec 2009 18:11:57 GMT]]></title><description><![CDATA[<p>Hallo, ich möchte ein Programm schreiben, das über eine Struktur Werte einlesen kann, die in einem lokal vereinbarten Feld abgelegt werden.</p>
<p>Ich habe bereits einen Zeiger auf die Struktur gelegt, um später eine Liste anlegen zu können.</p>
<p>Zunächst möchte ich aber einfach nur drei werte für eine Kiste einlesen, anhand dieser Werte das Volumen ausrechnen und die Eingabe wiedergeben.</p>
<p>Allerdings bekomme ich immer wieder eine speicherschutzverletzung und kann anhand der Fehlermeldung nicht erkennen warum ich diese bekomme. Außerdem bekomme ich eine Warnung vom Compiler angezeigt.</p>
<p>KANN MIR BITTE JEMAND HELFEN?</p>
<p>------------------------------WARNUNG-------------------------------------<br />
cpp(26) : warning C4700: Die nicht initialisierte lokale Variable &quot;aKiste&quot; wurde verwendet.<br />
--------------------------------------------------------------------------</p>
<p>Hier das Listing mit der entsprechenden Fehlermeldung:</p>
<p>-------------------------LISTING---------------------------<br />
#include &quot;stdafx.h&quot;</p>
<p>using namespace System;</p>
<p>struct kiste {</p>
<p>Single hoehe;<br />
Single breite;<br />
Single laenge;<br />
Single volumen;<br />
Int32 kistennummer;<br />
kiste *next;</p>
<p>};</p>
<p>kiste einlesen(Int32 kistennummer) {</p>
<p>kiste *aKiste;</p>
<p>Console::Write(&quot;\n\nKiste: {0}&quot;, kistennummer);<br />
aKiste-&gt;kistennummer=kistennummer;//cpp(26)[u]</p>
<p>Console::Write(&quot;Geben Sie die Höhe ein: &quot;);<br />
aKiste-&gt;hoehe=Convert::ToSingle(Console::ReadLine());</p>
<p>Console::Write(&quot;Geben Sie die Breite ein: &quot;);<br />
aKiste-&gt;breite=Convert::ToSingle(Console::ReadLine());</p>
<p>Console::Write(&quot;Geben Sie die Länge ein: &quot;);<br />
aKiste-&gt;laenge=Convert::ToSingle(Console::ReadLine());</p>
<p>aKiste-&gt;volumen=aKiste-&gt;hoehe*aKiste-&gt;breite*aKiste-&gt;laenge;<br />
Console::Write(&quot;\nVolumen: {0}&quot;, aKiste-&gt;volumen);</p>
<p>return(*aKiste);</p>
<p>}</p>
<p>int main(array&lt;System::String ^&gt; ^args)<br />
{<br />
kiste lagerraum[100];</p>
<p>for(Int32 schleife=0; schleife&lt;2; schleife++)<br />
lagerraum[schleife]=einlesen(schleife+1);</p>
<p>return 0;<br />
}<br />
--------------------------------------------------------------------------</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1828596</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1828596</guid><dc:creator><![CDATA[ciq]]></dc:creator><pubDate>Sun, 27 Dec 2009 18:11:57 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherschutzverletzung! on Sun, 27 Dec 2009 18:21:00 GMT]]></title><description><![CDATA[<p>Benutze bitte [cpp]-Tags (erste weisse Schaltfläche unter dem Textfeld).</p>
<p>Die Warnung sagt ja genau, wo das Problem liegt...? Naja, du musst <code>aKiste</code> eben einen gültigen Wert zuweisen. Am besten legst du aber eine automatische Variable und keinen Zeiger an (dann musst du später aber über <code>operator.</code> statt <code>operator-&gt;</code> zugreifen):</p>
<pre><code class="language-cpp">kiste aKiste;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1828604</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1828604</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 27 Dec 2009 18:21:00 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherschutzverletzung! on Sun, 27 Dec 2009 18:44:41 GMT]]></title><description><![CDATA[<p>Danke für die schnelle Antwort!</p>
<p>Ich habe leider keine Ahnung wovon du sprichst.</p>
<p>Den Begriff cpp kenne ich nur im Zusammenhang mit Programmverwaltung, indem man Programmelemente wie Funktionen als cpp speichert.</p>
<p>Falls du das meinen solltest, frage ich mich trotzdem, was das am eigentlichen Problem ändern sollte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1828613</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1828613</guid><dc:creator><![CDATA[ciq]]></dc:creator><pubDate>Sun, 27 Dec 2009 18:44:41 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherschutzverletzung! on Sun, 27 Dec 2009 18:59:17 GMT]]></title><description><![CDATA[<p>ciq schrieb:</p>
<blockquote>
<p>Danke für die schnelle Antwort!</p>
<p>Ich habe leider keine Ahnung wovon du sprichst.</p>
<p>Den Begriff cpp kenne ich nur im Zusammenhang mit Programmverwaltung, indem man Programmelemente wie Funktionen als cpp speichert.</p>
<p>Falls du das meinen solltest, frage ich mich trotzdem, was das am eigentlichen Problem ändern sollte.</p>
</blockquote>
<p>Er meint du sollst hier im Forum die cpp-funktion für Code-Highlighting nutzen!<br />
Da ist unter dem TextEdit, in das du deine Antwort schreibst, ein dicker Button glaich links oben, da steht drauf &quot;C/C++&quot;. So kann man deinen Code ordentlich lesen...</p>
<p>Und die Lösung zu deinem Problem hat Nexus doch auch schon gepostet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1828617</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1828617</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Sun, 27 Dec 2009 18:59:17 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherschutzverletzung! on Sun, 27 Dec 2009 20:27:48 GMT]]></title><description><![CDATA[<p>Für den Quelltext sind wohl eher die C++/CLI Tags angebracht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1828652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1828652</guid><dc:creator><![CDATA[Mitleid]]></dc:creator><pubDate>Sun, 27 Dec 2009 20:27:48 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherschutzverletzung! on Sun, 27 Dec 2009 20:27:59 GMT]]></title><description><![CDATA[<p>ciq schrieb:</p>
<blockquote>
<p>Hallo, ich möchte [...] Ich habe bereits [...] Allerdings bekomme ich immer wieder eine speicherschutzverletzung und kann anhand der Fehlermeldung nicht erkennen warum ich diese bekomme. Außerdem bekomme ich eine Warnung vom Compiler angezeigt. [...]</p>
<p>------------------------------WARNUNG-------------------------------------<br />
cpp(26) : warning C4700: Die nicht initialisierte lokale Variable &quot;aKiste&quot; wurde verwendet.<br />
--------------------------------------------------------------------------</p>
</blockquote>
<p>Was verstehst Du an dieser Fehlermeldung nicht?</p>
<p>ciq schrieb:</p>
<blockquote>
<p>Hier das Listing mit der entsprechenden Fehlermeldung:</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;

using namespace System;

struct kiste {
	
	Single hoehe;
	Single breite;
	Single laenge;
	Single volumen;
	Int32 kistennummer;
	kiste *next;

};

kiste einlesen(Int32 kistennummer) {

	kiste *aKiste;

	Console::Write(&quot;\n\nKiste: {0}&quot;, kistennummer);
	aKiste-&gt;kistennummer=kistennummer;   // &lt;--- Warnung

	Console::Write(&quot;Geben Sie die Höhe ein: &quot;);
	aKiste-&gt;hoehe=Convert::ToSingle(Console::ReadLine());

	Console::Write(&quot;Geben Sie die Breite ein: &quot;);
	aKiste-&gt;breite=Convert::ToSingle(Console::ReadLine());

	Console::Write(&quot;Geben Sie die Länge ein: &quot;);
	aKiste-&gt;laenge=Convert::ToSingle(Console::ReadLine());

	aKiste-&gt;volumen=aKiste-&gt;hoehe*aKiste-&gt;breite*aKiste-&gt;laenge;
	Console::Write(&quot;\nVolumen: {0}&quot;, aKiste-&gt;volumen);

	return(*aKiste);

}

int main(array&lt;System::String ^&gt; ^args)
{
	kiste lagerraum[100];

	for(Int32 schleife=0; schleife&lt;2; schleife++)
	lagerraum[schleife]=einlesen(schleife+1);

	return 0;
}
</code></pre>
</blockquote>
<p>Falsches Forum. Willst Du <a href="http://de.wikipedia.org/wiki/C%2B%2B" rel="nofollow">C++</a> oder <a href="http://de.wikipedia.org/wiki/C%2B%2B/CLI" rel="nofollow">C++/CLI</a> programmieren? Entscheide Dich. Wähle dann das richtige Forum. Bei stdafx.h, Single, I32, System::String^ wird mir ja übel. <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>
<p>Was ist passiert? aKiste ist ein nicht-initialisierter Zeiger, welcher dann dereferenziert wird und damit undefiniertes Verhalten hervorruft. Peng! Was ist daran nicht zu verstehen?</p>
<p>Schnapp Dir ein C++ Buch und lies das Kapitel über Zeiger durch. Als Einstieg kannst Du auch &quot;<a href="http://www.youtube.com/watch?v=i49_SNt4yfk" rel="nofollow">Pointer fun with Binky</a>&quot; gucken. Das, was Du als &quot;Speicherschutzverletzung&quot; erlebt hast, ist das, was Binky zerlegt und den tollen ÄÄÄÄÄÄ!-Sound macht.</p>
<p>Gruß,<br />
SP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1828653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1828653</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Sun, 27 Dec 2009 20:27:59 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherschutzverletzung! on Mon, 28 Dec 2009 17:12:42 GMT]]></title><description><![CDATA[<p>Was ist ein Single ?</p>
<p>Und warum wird dir bei System::String^ Schlecht ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1828945</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1828945</guid><dc:creator><![CDATA[5cript]]></dc:creator><pubDate>Mon, 28 Dec 2009 17:12:42 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherschutzverletzung! on Mon, 28 Dec 2009 22:29:31 GMT]]></title><description><![CDATA[<p>Tim06TR schrieb:</p>
<blockquote>
<p>Was ist ein Single ?</p>
<p>Und warum wird dir bei System::String^ Schlecht ?</p>
</blockquote>
<p>Ihm wird schelcht, weil <code>System::String^</code> , wie vieles andere auch, was Du verwendest, kein gültiges C++ ist. Und damit hat das im C++-Forum nichts zu suchen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1829085</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1829085</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Mon, 28 Dec 2009 22:29:31 GMT</pubDate></item></channel></rss>