<?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[Zugriff auf Zeiger in Vektoren?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe seit einiger Zeit das Problem, dass ich auf keine Zeiger in einem Vektor zugreifen kann. Dabei gibt es immer folgende Ausnahme:</p>
<blockquote>
<p>Unbehandelte Ausnahme bei [...]: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xcccccccc.</p>
</blockquote>
<p>Der folgende Quell-Code soll das mal verdeutlichen:</p>
<pre><code class="language-cpp">class DasObjekt
{
public:
  int x;
  DasObjekt(int argument)
  {
     x=argument;
  }
};
//Weiterer Code
vector&lt;DasObjekt*&gt; vectorVonDasObjekt(3);

vectorVonDasObjekt[0]=new DasObjekt(5);
vectorVonDasObjekt[0]-&gt;x += 5;
//Hier wird die Ausnahme gestartet

//Weiterer Code
</code></pre>
<p>Wie kann ich die Ausnahme verhindern, bzw. wie erteile ich dem Vektor den Zugriff auf die Variable x?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/304015/zugriff-auf-zeiger-in-vektoren</link><generator>RSS for Node</generator><lastBuildDate>Mon, 10 Aug 2026 03:54:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/304015.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 27 May 2012 21:42:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zugriff auf Zeiger in Vektoren? on Sun, 27 May 2012 21:42:29 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe seit einiger Zeit das Problem, dass ich auf keine Zeiger in einem Vektor zugreifen kann. Dabei gibt es immer folgende Ausnahme:</p>
<blockquote>
<p>Unbehandelte Ausnahme bei [...]: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xcccccccc.</p>
</blockquote>
<p>Der folgende Quell-Code soll das mal verdeutlichen:</p>
<pre><code class="language-cpp">class DasObjekt
{
public:
  int x;
  DasObjekt(int argument)
  {
     x=argument;
  }
};
//Weiterer Code
vector&lt;DasObjekt*&gt; vectorVonDasObjekt(3);

vectorVonDasObjekt[0]=new DasObjekt(5);
vectorVonDasObjekt[0]-&gt;x += 5;
//Hier wird die Ausnahme gestartet

//Weiterer Code
</code></pre>
<p>Wie kann ich die Ausnahme verhindern, bzw. wie erteile ich dem Vektor den Zugriff auf die Variable x?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2216158</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2216158</guid><dc:creator><![CDATA[Taeli]]></dc:creator><pubDate>Sun, 27 May 2012 21:42:29 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff auf Zeiger in Vektoren? on Sun, 27 May 2012 21:48:46 GMT]]></title><description><![CDATA[<p>Das sieht ganz in Ordnung aus. Poste mal den echten Code, bei dem der Fehler auftritt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2216160</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2216160</guid><dc:creator><![CDATA[icarus2]]></dc:creator><pubDate>Sun, 27 May 2012 21:48:46 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff auf Zeiger in Vektoren? on Sun, 27 May 2012 21:54:53 GMT]]></title><description><![CDATA[<p>Du hast definitv den falschen Code gezeigt. Dieser hier macht keine Probleme, habs grad mit VS getestet.</p>
<p>Aus der Fehlermeldung schließe ich, du benutzt auch VS. Und das 0xccccccc zeigt, dass du auf einen Zeiger zugreifst, bevor du mit new was reserviert hast, bzw. ihm einen gülitigen Wert zugewiesen hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2216165</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2216165</guid><dc:creator><![CDATA[Jonas OSDever]]></dc:creator><pubDate>Sun, 27 May 2012 21:54:53 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff auf Zeiger in Vektoren? on Sun, 27 May 2012 22:11:34 GMT]]></title><description><![CDATA[<p>Stimmt, vielen Dank für die Hilfe!<br />
Nach dem Tipp hab ich den Fehler jetzt gefunden.</p>
<p>Statt += 5 hab ich in meinem richtigen Code den Wert aus einem Objekt in einem anderen Vektor genommen.<br />
Und das Objekt hab ich erst nach der Zuweisung erstellt <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>Ich hätte ein viel komplexeres Problem vermutet, hätte meinen ganzen Code jetzt umgeschrieben und hätte den Fehler nach Stunden immer noch nicht gefunden... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2216168</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2216168</guid><dc:creator><![CDATA[Taeli]]></dc:creator><pubDate>Sun, 27 May 2012 22:11:34 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff auf Zeiger in Vektoren? on Sun, 27 May 2012 22:18:24 GMT]]></title><description><![CDATA[<p>Taeli schrieb:</p>
<blockquote>
<p>hätte meinen ganzen Code jetzt umgeschriebe</p>
</blockquote>
<p>Würde ich auch jetzt noch tun.</p>
<p>Es gibt bei dir zum Beispiel keinen Grund, warum der Code nicht so aussehen kann:</p>
<pre><code class="language-cpp">vector&lt;DasObjekt&gt; vectorVonDasObjekt;

DasObjekt dot(5);
dot.x += 5;
vectorVonDasObjekt.push_back(dot);
</code></pre>
<p>Wenn du wirklich Zeiger brauchst (das geht eig. nur wegen der Polymorphie), dann nimm einen <code>vector&lt;unique_ptr&lt;DasObjekt&gt;&gt;</code> oder zumindest shared_ptr, wenn du kein C++11 zur Verfügung hast.</p>
<p>Bei Vektoren mit Zeigern sind Memory-Leaks und Speicherzugriffsfehler vorprogrammiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2216170</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2216170</guid><dc:creator><![CDATA[umschreiber]]></dc:creator><pubDate>Sun, 27 May 2012 22:18:24 GMT</pubDate></item></channel></rss>