<?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[freigabe von reseviertem Speicher]]></title><description><![CDATA[<p>guten morgen,</p>
<p>gibt es eine Möglichkeit zum überprüfen, ob der von mir resevierte Speicher korrekt freigegeben wurde. Versuche nach Möglichkeit die resevierung und freigeben im Auge zu behalten. Beim größerm Projekt kann ich auch einmal etwas übersehen. Speicher wird und muß in Unit's deklariert werden, ist vom Type vector(AnsiString, int)</p>
<p>Gruß Siegfried</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/145127/freigabe-von-reseviertem-speicher</link><generator>RSS for Node</generator><lastBuildDate>Wed, 05 Aug 2026 02:33:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/145127.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 25 Apr 2006 09:14:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to freigabe von reseviertem Speicher on Tue, 25 Apr 2006 09:14:09 GMT]]></title><description><![CDATA[<p>guten morgen,</p>
<p>gibt es eine Möglichkeit zum überprüfen, ob der von mir resevierte Speicher korrekt freigegeben wurde. Versuche nach Möglichkeit die resevierung und freigeben im Auge zu behalten. Beim größerm Projekt kann ich auch einmal etwas übersehen. Speicher wird und muß in Unit's deklariert werden, ist vom Type vector(AnsiString, int)</p>
<p>Gruß Siegfried</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1044663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1044663</guid><dc:creator><![CDATA[Beppo]]></dc:creator><pubDate>Tue, 25 Apr 2006 09:14:09 GMT</pubDate></item><item><title><![CDATA[Reply to freigabe von reseviertem Speicher on Tue, 25 Apr 2006 09:25:19 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>bei einem vector(AnsiString, int) must du gar nichts selber freigeben, das wird alles automatisch freigegeben, wenn der Gültigkeitsbereich des vectors verlassen wird.</p>
<p>Wenn du aber meinst, das du einen Pointer auf den vector hast, kannst du als einfachsten einen std::auto_ptr darauf verwenden, der dann ebenfalls beim ende der Gültigkeit den vector wieder löscht.</p>
<p>Überprüfen kannst du solche Speicherlecks imo mit CodeGuard, oder indem du new und delete überschreibst.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1044669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1044669</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Tue, 25 Apr 2006 09:25:19 GMT</pubDate></item><item><title><![CDATA[Reply to freigabe von reseviertem Speicher on Tue, 25 Apr 2006 10:22:20 GMT]]></title><description><![CDATA[<p>Hallo,<br />
hier ein Ausschnitt meiner Code.</p>
<pre><code class="language-cpp">Deklariere  *.cpp
std::vector&lt;vector&lt;vector&lt;AnsiString&gt; &gt; &gt;           vvvasMemoryAktion;
Deklariere  *.h
extern std::vector&lt;vector&lt;vector&lt;AnsiString&gt; &gt; &gt;    vvvasMemoryAktion;
</code></pre>
<p>..................... erstellen</p>
<pre><code class="language-cpp">//
//---&gt;    dreifach Vector erstellen
      vvvasMemoryAktion.resize(iDbGruppen);
//
//---&gt;    n Tabelle/n in Vector/en speichern
      vvvasMemoryAktion[iPath].resize(iSatzAnzahl);
//
//---&gt;    n Fields in Vector/en speichern
      vvvasMemoryAktion[iPath][iSatz].resize(iFieldsAnzahl);
//
//---&gt;    Fields speichern
      vvvasMemoryAktion[iPath][iSatz][iFields] = &quot; XYZ &quot;;
</code></pre>
<pre><code class="language-cpp">.....................       freigeben
    iSize = vvvasMemoryAktion.size();
        if (iSize &gt; 0)
          {   //  iSize1 &gt; 0
            for (int i2=0; i2&lt;iSize; i2++)
              {   //  i2=0; i2&lt;iSize; i2++
              iSize1 = vvvasMemoryAktion[i2].size();
                //
                if (iSize1 &gt; 0)
                  {   //  iSize2 &gt; 0
                    for (int i3=0; i3&lt;iSize1; i3++)
                      {   //  i3=0; i3&lt;iSize1; i3++
                      vvvasMemoryAktion[i2][i3].clear();
                      }   //  i3=0; i3&lt;iSize2; i3++
                  }   //  iSize1 &gt; 0
              vvvasMemoryAktion[i2].clear();
              }   //  i2=0; i2&lt;iSize; i2++
          }   //  iSize &gt; 0
      vvvasMemoryAktion.clear();
</code></pre>
<p>Arbeite schon mehrere Monate damit Funktionsmäßig damit keine Probleme.<br />
wenn dieses verfahren nicht korrekt ist, wäre ich über Info's sehr dankbar.<br />
Ich möchte die Gewißheit habe, das der resevierte Speicher wieder beim beenden des Programms wieder freigegeben wird. Alles ist in einer Unit erstellt. Das resevieren erfolgt von der ersten Form(Show) und das freigeben von der ersten Form(Close) aus. Noch ne Frage, muß ich auch die int iPath,iSatz,iFields freigeben ?<br />
Gruß Siegfried</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1044715</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1044715</guid><dc:creator><![CDATA[Beppo]]></dc:creator><pubDate>Tue, 25 Apr 2006 10:22:20 GMT</pubDate></item><item><title><![CDATA[Reply to freigabe von reseviertem Speicher on Tue, 25 Apr 2006 10:25:51 GMT]]></title><description><![CDATA[<p>Das Verfahren ist technisch korrekt, aber praktisch überflüssig - der Vector-Destruktor zieht diese Schleifenkonstruktion schon selber durch, da brauchst du nicht manuell aufräumen.</p>
<p>(selber freigeben mußt du nur den Speicher, den du explizit über new oder malloc() angefordert hast)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1044717</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1044717</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 25 Apr 2006 10:25:51 GMT</pubDate></item><item><title><![CDATA[Reply to freigabe von reseviertem Speicher on Fri, 28 Apr 2006 09:21:09 GMT]]></title><description><![CDATA[<p>hallo, guten morgen<br />
werde die Zeilen im Auge behalten, sodas kein Problem auftritt. CodeGuard ist bei mir aktiv.<br />
danke an alle<br />
Gruß Siegfried <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1046937</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1046937</guid><dc:creator><![CDATA[Beppo]]></dc:creator><pubDate>Fri, 28 Apr 2006 09:21:09 GMT</pubDate></item></channel></rss>