<?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[Pointerproblem:]]></title><description><![CDATA[<p>Hallo Forum,</p>
<p>ich möchte ein Autoobjekt erstellen, die Eigenschaft Nummer setzen und dann das Auto in einen Vektor schreiben:</p>
<pre><code class="language-cpp">...
	Auto *oAuto;
	char *tmp=0;

	oAuto = new Auto;
	//oSchrottplatz-&gt;AddAuto(oAuto); // &lt;- Hier kommt das Auto auf dem Schrottplatz nicht an. Warum?

	// Nummer setzen:
	tmp = (char *)malloc(10);
	sprintf(tmp, &quot;Nbr %5d&quot;, i); 
	oAuto-&gt;Number = tmp;

	oSchrottplatz-&gt;AddAuto(oDongle); // Hier kommt das Auto mit richtiger Nummer an.
};

int Schrottplatz::AddAuto(Auto *oAuto) {
	m_Autos.push_back(*oAuto);
	return 0;
}
</code></pre>
<p>Ich wollte es eigentlich so wie in der auskommentierten Zeile machen. Das Autoobjekt hat die Adresse xx5758 wenn der New Operator abgearbeitet ist. Diese Addresse wird auch an erster Stelle von m_Autos geschrieben. Die gesetzte Nummer erscheint aber nicht in m_Autos[]. Wird bei push_back eine Kopie gemacht? Wenn ich zuerst die Nummer dem Auto hinzufüge und dann das Auto auf den Schrottplatz werfen erscheint die Nummer ach in m_Autos[1].</p>
<p>Moser</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/168393/pointerproblem</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 09:41:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/168393.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 21 Dec 2006 16:06:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Pointerproblem: on Thu, 21 Dec 2006 16:06:15 GMT]]></title><description><![CDATA[<p>Hallo Forum,</p>
<p>ich möchte ein Autoobjekt erstellen, die Eigenschaft Nummer setzen und dann das Auto in einen Vektor schreiben:</p>
<pre><code class="language-cpp">...
	Auto *oAuto;
	char *tmp=0;

	oAuto = new Auto;
	//oSchrottplatz-&gt;AddAuto(oAuto); // &lt;- Hier kommt das Auto auf dem Schrottplatz nicht an. Warum?

	// Nummer setzen:
	tmp = (char *)malloc(10);
	sprintf(tmp, &quot;Nbr %5d&quot;, i); 
	oAuto-&gt;Number = tmp;

	oSchrottplatz-&gt;AddAuto(oDongle); // Hier kommt das Auto mit richtiger Nummer an.
};

int Schrottplatz::AddAuto(Auto *oAuto) {
	m_Autos.push_back(*oAuto);
	return 0;
}
</code></pre>
<p>Ich wollte es eigentlich so wie in der auskommentierten Zeile machen. Das Autoobjekt hat die Adresse xx5758 wenn der New Operator abgearbeitet ist. Diese Addresse wird auch an erster Stelle von m_Autos geschrieben. Die gesetzte Nummer erscheint aber nicht in m_Autos[]. Wird bei push_back eine Kopie gemacht? Wenn ich zuerst die Nummer dem Auto hinzufüge und dann das Auto auf den Schrottplatz werfen erscheint die Nummer ach in m_Autos[1].</p>
<p>Moser</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1196212</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1196212</guid><dc:creator><![CDATA[Moser]]></dc:creator><pubDate>Thu, 21 Dec 2006 16:06:15 GMT</pubDate></item><item><title><![CDATA[Reply to Pointerproblem: on Thu, 21 Dec 2006 16:41:28 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile.php?mode=viewprofile&amp;u=14811" rel="nofollow">TactX</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=10" rel="nofollow">ANSI C</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=15" rel="nofollow">C++</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1196232</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1196232</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Thu, 21 Dec 2006 16:41:28 GMT</pubDate></item><item><title><![CDATA[Reply to Pointerproblem: on Thu, 21 Dec 2006 16:49:57 GMT]]></title><description><![CDATA[<p>Moser schrieb:</p>
<blockquote>
<p>Wird bei push_back eine Kopie gemacht?</p>
</blockquote>
<p>ob die methode push_back ein kopie macht oder was sie überhaupt macht kann ich hier leider nicht rauslesen, aber möglicherweise soll ihr ein normaler Zeiger übergeben werden, also</p>
<pre><code>m_Autos.push_back(oAuto);
</code></pre>
<p>anstatt</p>
<pre><code>m_Autos.push_back(*oAuto);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1196235</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1196235</guid><dc:creator><![CDATA[plankton]]></dc:creator><pubDate>Thu, 21 Dec 2006 16:49:57 GMT</pubDate></item><item><title><![CDATA[Reply to Pointerproblem: on Thu, 21 Dec 2006 17:13:23 GMT]]></title><description><![CDATA[<p>push_back macht eine Kopie des übergebenen Objektes.</p>
<pre><code class="language-cpp">Auto *oAuto = new Auto;
oSchrottplatz-&gt;AddAuto(oAuto); // hier wird der Pointer hineinkopiert

int Schrottplatz::AddAuto(Auto *oAuto) 
{
    m_Autos.push_back(*oAuto); // Hier wird das Objekt hineinkopiert
    return 0;
}
</code></pre>
<p>Wie sieht denn die Deklaration von m_Auto aus. Ich hoffe mal Number ist kein char*.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1196249</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1196249</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 21 Dec 2006 17:13:23 GMT</pubDate></item><item><title><![CDATA[Reply to Pointerproblem: on Fri, 22 Dec 2006 12:51:07 GMT]]></title><description><![CDATA[<p>Das wichtigste hatte ich vergessen. m_Auto ist ein Vektor. Also:<br />
vector&lt;Auto&gt; m_Autos;</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/1387">@Braunstein</a>: Des gesamten Objektes? Oder nur des Pointers?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1196639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1196639</guid><dc:creator><![CDATA[Moser]]></dc:creator><pubDate>Fri, 22 Dec 2006 12:51:07 GMT</pubDate></item><item><title><![CDATA[Reply to Pointerproblem: on Fri, 22 Dec 2006 14:00:36 GMT]]></title><description><![CDATA[<p>push_back kopiert das Objekt mit dessen Copy-Ctor - wenn du keinen definiert hast, bedeutet das eine flache Kopie (sprich: Zeiger werden nur umgebogen).</p>
<p>Wie ist eigentlich deine Auto-Klasse definiert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1196667</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1196667</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 22 Dec 2006 14:00:36 GMT</pubDate></item></channel></rss>