<?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[new in funktion]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe folgende Frage. Ich erzeuge in meinen Programm in einer Funktion ein mit new dynamisch erzeugtes Objekt. Diese wiederum übergebe ich an eine andere Funktion die ein Array von Zeiger dieses Typs enthält.</p>
<p>Jetzt habe ich das Problem, dass man ja mit new geforderten Speicher auch wiederum mit delete wieder freigeben muss, damit keine Speicher Leaks entstehen. Meine Frage ist wo muss ich das delete denn machen? Wenn ich das delete in der Funktion mache, wo ich das erzeuge habe doch dann die andere Funktion nichts damit anfangen, weil dieses doch dann gelöscht ist? Oder ist das Objekt nocht vorhanden? Und wie kann ich dann darauf zugreifen?</p>
<p>mfg<br />
meeper</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/178810/new-in-funktion</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 01:04:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/178810.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 15 Apr 2007 10:48:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to new in funktion on Sun, 15 Apr 2007 10:48:18 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe folgende Frage. Ich erzeuge in meinen Programm in einer Funktion ein mit new dynamisch erzeugtes Objekt. Diese wiederum übergebe ich an eine andere Funktion die ein Array von Zeiger dieses Typs enthält.</p>
<p>Jetzt habe ich das Problem, dass man ja mit new geforderten Speicher auch wiederum mit delete wieder freigeben muss, damit keine Speicher Leaks entstehen. Meine Frage ist wo muss ich das delete denn machen? Wenn ich das delete in der Funktion mache, wo ich das erzeuge habe doch dann die andere Funktion nichts damit anfangen, weil dieses doch dann gelöscht ist? Oder ist das Objekt nocht vorhanden? Und wie kann ich dann darauf zugreifen?</p>
<p>mfg<br />
meeper</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1266384</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1266384</guid><dc:creator><![CDATA[meeper]]></dc:creator><pubDate>Sun, 15 Apr 2007 10:48:18 GMT</pubDate></item><item><title><![CDATA[Reply to new in funktion on Sun, 15 Apr 2007 11:01:59 GMT]]></title><description><![CDATA[<p>reserviere doch einfach in beiden funktionen speicher</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1266389</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1266389</guid><dc:creator><![CDATA[Raxtor]]></dc:creator><pubDate>Sun, 15 Apr 2007 11:01:59 GMT</pubDate></item><item><title><![CDATA[Reply to new in funktion on Sun, 15 Apr 2007 11:02:55 GMT]]></title><description><![CDATA[<p>meeper schrieb:</p>
<blockquote>
<p>Wenn ich das delete in der Funktion mache, wo ich das erzeuge habe doch dann die andere Funktion nichts damit anfangen, weil dieses doch dann gelöscht ist?</p>
</blockquote>
<p>Genau, darum musst du den Speicher anderswo freigeben. Evtl dort wo das Array welches die Zeiger hält zerstört wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1266391</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1266391</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Sun, 15 Apr 2007 11:02:55 GMT</pubDate></item><item><title><![CDATA[Reply to new in funktion on Sun, 15 Apr 2007 11:04:17 GMT]]></title><description><![CDATA[<p>löschen kannst du überall, wo du den zugriff auf den zeiger hast.<br />
dieser ist ja in dem array gespeichert. also auch überall dort wo du zugriff auf das array hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1266393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1266393</guid><dc:creator><![CDATA[deeper]]></dc:creator><pubDate>Sun, 15 Apr 2007 11:04:17 GMT</pubDate></item><item><title><![CDATA[Reply to new in funktion on Sun, 15 Apr 2007 11:17:32 GMT]]></title><description><![CDATA[<p>Wie schon alle geschrieben haben, kannst du den mit new reservierten Speicher überall wieder freigeben, wo du Zugriff auf den Pointer des Arrays hast.</p>
<p>Allerdings überlege dir gut ob du das willst... denn wenn du in einer Funktion (oder meinst du Methode?) Speicher allokierst und du dann in einer fremden Funktion (die einen anderen Zweck erfüllt) wieder freigibst, dann ist der Code nicht wirklich portabel und die Funktion nicht wiederverwendbar.</p>
<p>Da du ja C++ verwendest wie wäre ein klassenbasiertes Modell für das?<br />
Deine beiden Funktionen(=Methoden) als Public und den Pointer als private. Dann eine allocate und deallocate Methode (oder vielleicht gleich in den Konstruktor/Destrutktor einbauen) und schon ist das ganze portabel und gut <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Denk vielleicht mal darüber nach <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
<p>Greetz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1266398</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1266398</guid><dc:creator><![CDATA[codefrag]]></dc:creator><pubDate>Sun, 15 Apr 2007 11:17:32 GMT</pubDate></item></channel></rss>