<?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[CTypedPtrArray Rückgabe Problem]]></title><description><![CDATA[<p>Hallo,</p>
<p>hier erstmal mein Code:</p>
<pre><code>// CMyClass.h
private:
  // verwende hier mehrwertige Assoziationen  
  CTypedPtrArray &lt; CObArray, CMyAnnerClass* &gt; *m_pGitter;

// CMyClass.cpp
void CMyClass::Init()
{
  m_pGitter = new CTypedPtrArray &lt; CObArray, CMyAnnerClass* &gt;;
  m_pGitter-&gt;SetSize(size);
  for(int i=0; i&lt;size; i++)
  {
    (*m_pGitter)[i] = new CMyAnnerClass();
  }
}

CTypedPtrArray &lt; CObArray, CMyAnnerClass* &gt; *CMyClass::GetGitter()
{
  return &amp;m_pGitter;
}
</code></pre>
<p>sieht doch in Ordnung aus, oder?<br />
Mein Kompiler sagt mir der return-Wert habe Konvertierungsprobleme.<br />
Wenn ich etwas mit den Pointer spiele, wie z.B. den Adressoperator weg lasse, wird die Anwendung zwar Fehlerfrei kompiliert, das Program stürzt aber sofort ab. Wo liegt mein Fehler?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/151943/ctypedptrarray-rückgabe-problem</link><generator>RSS for Node</generator><lastBuildDate>Thu, 23 Jul 2026 13:47:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/151943.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 30 Jun 2006 23:11:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CTypedPtrArray Rückgabe Problem on Fri, 30 Jun 2006 23:11:50 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>hier erstmal mein Code:</p>
<pre><code>// CMyClass.h
private:
  // verwende hier mehrwertige Assoziationen  
  CTypedPtrArray &lt; CObArray, CMyAnnerClass* &gt; *m_pGitter;

// CMyClass.cpp
void CMyClass::Init()
{
  m_pGitter = new CTypedPtrArray &lt; CObArray, CMyAnnerClass* &gt;;
  m_pGitter-&gt;SetSize(size);
  for(int i=0; i&lt;size; i++)
  {
    (*m_pGitter)[i] = new CMyAnnerClass();
  }
}

CTypedPtrArray &lt; CObArray, CMyAnnerClass* &gt; *CMyClass::GetGitter()
{
  return &amp;m_pGitter;
}
</code></pre>
<p>sieht doch in Ordnung aus, oder?<br />
Mein Kompiler sagt mir der return-Wert habe Konvertierungsprobleme.<br />
Wenn ich etwas mit den Pointer spiele, wie z.B. den Adressoperator weg lasse, wird die Anwendung zwar Fehlerfrei kompiliert, das Program stürzt aber sofort ab. Wo liegt mein Fehler?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1089348</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1089348</guid><dc:creator><![CDATA[toh]]></dc:creator><pubDate>Fri, 30 Jun 2006 23:11:50 GMT</pubDate></item><item><title><![CDATA[Reply to CTypedPtrArray Rückgabe Problem on Sat, 01 Jul 2006 05:32:41 GMT]]></title><description><![CDATA[<p>toh schrieb:</p>
<blockquote>
<p>sieht doch in Ordnung aus, oder?</p>
</blockquote>
<p>Nein, das &amp; ist zu viel.</p>
<blockquote>
<p>Mein Kompiler sagt mir der return-Wert habe Konvertierungsprobleme.</p>
</blockquote>
<p>Dein Compiler sagt dir mit Sicherheit etwas anderes. Der genaue Wortlaut einer Fehlermeldung ist besser als deine Interpretation.</p>
<blockquote>
<p>Wenn ich etwas mit den Pointer spiele, wie z.B. den Adressoperator weg lasse, wird die Anwendung zwar Fehlerfrei kompiliert, das Program stürzt aber sofort ab. Wo liegt mein Fehler?</p>
</blockquote>
<p>Nicht in dem Code, den du gezeigt hast. Was sagt denn der Debugger?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1089373</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1089373</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Sat, 01 Jul 2006 05:32:41 GMT</pubDate></item><item><title><![CDATA[Reply to CTypedPtrArray Rückgabe Problem on Sat, 01 Jul 2006 07:55:52 GMT]]></title><description><![CDATA[<p>Mein Fehler, es lag an was anderem, sry für die verwirrung!</p>
<p>Ich hätt da aber noch ne andere Frage, wie gibt man obiges Konstrukt am besten wieder frei? Meine Anwendung hat jede Menge Memory-Leaks...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1089393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1089393</guid><dc:creator><![CDATA[toh]]></dc:creator><pubDate>Sat, 01 Jul 2006 07:55:52 GMT</pubDate></item><item><title><![CDATA[Reply to CTypedPtrArray Rückgabe Problem on Sat, 01 Jul 2006 10:14:20 GMT]]></title><description><![CDATA[<p><a href="http://www.cpp-tutor.de/cpp/le11/le11_01.htm" rel="nofollow">http://www.cpp-tutor.de/cpp/le11/le11_01.htm</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1089422</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1089422</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Sat, 01 Jul 2006 10:14:20 GMT</pubDate></item><item><title><![CDATA[Reply to CTypedPtrArray Rückgabe Problem on Sat, 01 Jul 2006 10:15:03 GMT]]></title><description><![CDATA[<p>Jo ist sowieso unglaublich kompliziert dein Konstrukt.</p>
<pre><code class="language-cpp">// CMyClass.h
private:
    // verwende hier mehrwertige Assoziationen
    // Wofür ein Pointer, leg doch lieber das Objekt normal an.
    // Die Objekte im Array, also die Pointer in dem Fall,
    // werden sowieso auf den Heap gepackt. Das ist nunmal nicht ein
    // normales Array.
    CTypedPtrArray&lt;CObArray, CMyAnnerClass*&gt; m_GitterArray;

// CMyClass.cpp
void CMyClass::Init()
{
    // Somit fällt dieses Zeugs hier sowieso weg.
    // Das Setsize ist übrigens auch völlig unnötig.
    // Die Grösse wird automatisch angepasst,
    // Dieses Array ist dynamisch.
    for(int i=0; i&lt;size; i++)
    {
        // Viel zu kompliziert.
        CMyAnnerClass* pMAC = new CMyAnnerClass()
        m_GitterArray.Add(pMAC);
    }
}

CTypedPtrArray&lt;CObArray, CMyAnnerClass*&gt;* CMyClass::GetGitter()
{ return &amp;m_Gitter; }
</code></pre>
<p>Dann musst du aber noch dafür sorgen, dass der Heapspeicher freigegeben wird.</p>
<pre><code class="language-cpp">// z.b. im Destruktor
while(m_GitterArray.GetCount() &gt; 0)
{
    CMyAnnerClass* pMAC = m_GitterArray.GetAt(0);
    delete pMAC;

    m_GitterArray.RemoveAt(0);
}
</code></pre>
<p>Wenn du CTypedPtrArray auch noch auf den Heap verbannen willst, was meiner Meinung nach wirklich nicht nötig ist. Dann mach im Destruktor folgendes rein:</p>
<pre><code class="language-cpp">// Destruktor
// Wenn m_pGitter ein Zeiger auf ein TypedPtrArray ist:
if(m_pGitter != NULL)
{
    while(m_pGitter-&gt;GetCount() &gt; 0)
    {
        CMyAnnerClass* pMAC = m_pGitter-&gt;GetAt(0);
        delete pMAC;

        m_pGitter-&gt;RemoveAt(0);
    }

    delete m_pGitter;
}
</code></pre>
<p>Ich hoffe ich konnte dir ein wenig weiterhelfen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1089423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1089423</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sat, 01 Jul 2006 10:15:03 GMT</pubDate></item><item><title><![CDATA[Reply to CTypedPtrArray Rückgabe Problem on Sat, 01 Jul 2006 11:45:44 GMT]]></title><description><![CDATA[<p>Vielleicht hilft Dir auch die MSDN beim Verständnis weiter (siehe vor allem die angegebenen Links):<br />
<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_CTypedPtrArray.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_CTypedPtrArray.asp</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1089471</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1089471</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Sat, 01 Jul 2006 11:45:44 GMT</pubDate></item><item><title><![CDATA[Reply to CTypedPtrArray Rückgabe Problem on Sat, 01 Jul 2006 15:50:16 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p>Jo ist sowieso unglaublich kompliziert dein Konstrukt.</p>
</blockquote>
<p>naja, so wollte es unser prof...<br />
aber wiso kompliziert? ist doch klar erkennbar was dort passiert!?</p>
<p>@Erhard Henkes: danke für deine new/delete einführungslektüre <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="🙂"
    /><br />
aber mir gings doch eher um die zerstörung speziell meines konstruktes <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1089627</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1089627</guid><dc:creator><![CDATA[toh]]></dc:creator><pubDate>Sat, 01 Jul 2006 15:50:16 GMT</pubDate></item><item><title><![CDATA[Reply to CTypedPtrArray Rückgabe Problem on Sat, 01 Jul 2006 16:04:59 GMT]]></title><description><![CDATA[<p>toh schrieb:</p>
<blockquote>
<p>Dravere schrieb:</p>
<blockquote>
<p>Jo ist sowieso unglaublich kompliziert dein Konstrukt.</p>
</blockquote>
<p>naja, so wollte es unser prof...<br />
aber wiso kompliziert? ist doch klar erkennbar was dort passiert!?</p>
</blockquote>
<p>Ok ich ziehe das kompliziert zurück und setze ein umständlich ein. Und mich würde mal wunder nehmen, was denn der Prof wirklich wollte. Das mit dem SetSize wohl eher nicht. Das ist ja völlig unnötig, nein sogar Fehleranfällig.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1089638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1089638</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sat, 01 Jul 2006 16:04:59 GMT</pubDate></item><item><title><![CDATA[Reply to CTypedPtrArray Rückgabe Problem on Sat, 01 Jul 2006 18:04:56 GMT]]></title><description><![CDATA[<blockquote>
<p>mir gings doch eher um die zerstörung speziell meines konstruktes</p>
</blockquote>
<p>Ja, das kann ich verstehen. Diesen Verhau würde ich auch klein häckseln! :schland:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1089717</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1089717</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Sat, 01 Jul 2006 18:04:56 GMT</pubDate></item></channel></rss>