<?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[Was stimmt hiermit nicht!?]]></title><description><![CDATA[<p>Wenn ich folgenden Array-Code in einer Funktion verwende, kackt das Programm nach Beendigung dieser Funktion ab... ich hab keine Ahnung woran es liegen könnte, habt ihr ne Idee?</p>
<pre><code>template &lt;typename T&gt;
class Array
{
public:
    Array()
    {
        m_size=0;
        m_data=new T[0];
    }
    Array(u32 size)
    {
        m_data=new T(size);
        m_size=size;
    }

    T &amp;operator[] (u32 pos)
    {
        return m_data[pos];
    }

    inline u32 getSize()
    {
        return m_size;
    }

    inline T* getData()
    {
        return m_data;
    }

    void resize(u32 newSize)
    {
        if(newSize==0)
        {
            //delete(m_data);
            m_data=new T[0];
            m_size=0;
        }

        if(m_size==0)
        {
            m_data=new T(newSize);
            m_size=newSize;
            return;
        }
        T* tmp = new T[m_size&lt;newSize?m_size:newSize];
        for(u32 i=0;i&lt;m_size;i++)
        {
            if(i&gt;=newSize)
                break;
            tmp[i]=m_data[i];
        }

        //delete(m_data);
        m_data=tmp;
        m_size=newSize;
    }

protected:
private:
    T* m_data;
    u32 m_size;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/263891/was-stimmt-hiermit-nicht</link><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 12:03:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/263891.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 29 Mar 2010 11:54:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Was stimmt hiermit nicht!? on Mon, 29 Mar 2010 11:54:13 GMT]]></title><description><![CDATA[<p>Wenn ich folgenden Array-Code in einer Funktion verwende, kackt das Programm nach Beendigung dieser Funktion ab... ich hab keine Ahnung woran es liegen könnte, habt ihr ne Idee?</p>
<pre><code>template &lt;typename T&gt;
class Array
{
public:
    Array()
    {
        m_size=0;
        m_data=new T[0];
    }
    Array(u32 size)
    {
        m_data=new T(size);
        m_size=size;
    }

    T &amp;operator[] (u32 pos)
    {
        return m_data[pos];
    }

    inline u32 getSize()
    {
        return m_size;
    }

    inline T* getData()
    {
        return m_data;
    }

    void resize(u32 newSize)
    {
        if(newSize==0)
        {
            //delete(m_data);
            m_data=new T[0];
            m_size=0;
        }

        if(m_size==0)
        {
            m_data=new T(newSize);
            m_size=newSize;
            return;
        }
        T* tmp = new T[m_size&lt;newSize?m_size:newSize];
        for(u32 i=0;i&lt;m_size;i++)
        {
            if(i&gt;=newSize)
                break;
            tmp[i]=m_data[i];
        }

        //delete(m_data);
        m_data=tmp;
        m_size=newSize;
    }

protected:
private:
    T* m_data;
    u32 m_size;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1875023</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1875023</guid><dc:creator><![CDATA[Unfaehig]]></dc:creator><pubDate>Mon, 29 Mar 2010 11:54:13 GMT</pubDate></item><item><title><![CDATA[Reply to Was stimmt hiermit nicht!? on Mon, 29 Mar 2010 11:55:57 GMT]]></title><description><![CDATA[<p>a) Destruktor fehlt<br />
b) m_data=new T(size); müsste T[size] sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1875026</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1875026</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Mon, 29 Mar 2010 11:55:57 GMT</pubDate></item><item><title><![CDATA[Reply to Was stimmt hiermit nicht!? on Mon, 29 Mar 2010 12:00:03 GMT]]></title><description><![CDATA[<p>() != []<br />
Du willst, dass m_data ein array ist. Deshalb willst du immer new[] verwenden.</p>
<p>// btw:<br />
Du hast gewaltig dicke Memoryleaks drinnen. new[] einfach über das alte Objekt lässt letzteres bis Programmende im SPeicher rumgeistern <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1875028</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1875028</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Mon, 29 Mar 2010 12:00:03 GMT</pubDate></item><item><title><![CDATA[Reply to Was stimmt hiermit nicht!? on Mon, 29 Mar 2010 11:58:51 GMT]]></title><description><![CDATA[<p>Und nicht delete(m_data); sondern delete[] m_data;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1875029</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1875029</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Mon, 29 Mar 2010 11:58:51 GMT</pubDate></item><item><title><![CDATA[Reply to Was stimmt hiermit nicht!? on Mon, 29 Mar 2010 12:00:04 GMT]]></title><description><![CDATA[<p>c) deletes sind auskommentiert<br />
d) <code>delete</code> ist keine Funktion<br />
e) man benutzt <code>delete[]</code> auf Speicher der mit <code>new[]</code> angefordert wurde<br />
f) es gibt <code>std::vector</code> und <code>boost::array</code></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1875031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1875031</guid><dc:creator><![CDATA[Registrierter Troll]]></dc:creator><pubDate>Mon, 29 Mar 2010 12:00:04 GMT</pubDate></item><item><title><![CDATA[Reply to Was stimmt hiermit nicht!? on Mon, 29 Mar 2010 12:12:11 GMT]]></title><description><![CDATA[<p>Ja, ich nutz sonst auch immer std::vector, aber ich brauch das, um Pakete fürs Netz zu bauen, daher muss das Array 1. flexibel in seiner Größe (wie bei vector), aber 2. auch direkt als zusammenhängender Datensatz - zb für memcpy o.ä. - ansprechbar sein.. Geht sowas etwas auch mit std::vector?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1875037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1875037</guid><dc:creator><![CDATA[Unfaehiger]]></dc:creator><pubDate>Mon, 29 Mar 2010 12:12:11 GMT</pubDate></item><item><title><![CDATA[Reply to Was stimmt hiermit nicht!? on Mon, 29 Mar 2010 12:18:11 GMT]]></title><description><![CDATA[<p>std::vector garantiert, dass alle Daten am Stück im Speicher hängen - std::vector ist ein variables Array. Sonst könntest du ja std::list nutzen, was eine verkettete Liste ist. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1875043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1875043</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Mon, 29 Mar 2010 12:18:11 GMT</pubDate></item><item><title><![CDATA[Reply to Was stimmt hiermit nicht!? on Mon, 29 Mar 2010 12:19:53 GMT]]></title><description><![CDATA[<p>Achsooooooo! Und wie greift man direkt darauf zu?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1875046</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1875046</guid><dc:creator><![CDATA[Am Unfaehigsten]]></dc:creator><pubDate>Mon, 29 Mar 2010 12:19:53 GMT</pubDate></item><item><title><![CDATA[Reply to Was stimmt hiermit nicht!? on Mon, 29 Mar 2010 12:22:39 GMT]]></title><description><![CDATA[<p>zB &amp;myVector[0]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1875049</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1875049</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Mon, 29 Mar 2010 12:22:39 GMT</pubDate></item><item><title><![CDATA[Reply to Was stimmt hiermit nicht!? on Mon, 29 Mar 2010 12:55:03 GMT]]></title><description><![CDATA[<p>Manchmal sieht man den Wald vor lauter Pointern nicht... Vielen Dank euch allen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1875083</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1875083</guid><dc:creator><![CDATA[Unfaehiger als Unfaehig]]></dc:creator><pubDate>Mon, 29 Mar 2010 12:55:03 GMT</pubDate></item><item><title><![CDATA[Reply to Was stimmt hiermit nicht!? on Mon, 29 Mar 2010 14:11:50 GMT]]></title><description><![CDATA[<p>Fellhuhn schrieb:</p>
<blockquote>
<p>zB &amp;myVector[0]</p>
</blockquote>
<p>Aber vorher das</p>
<pre><code class="language-cpp">if( !myVector.empty() )
{
  ...
}
</code></pre>
<p>nicht vergessen, sonst rappelt´s im Karton</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1875137</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1875137</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Mon, 29 Mar 2010 14:11:50 GMT</pubDate></item><item><title><![CDATA[Reply to Was stimmt hiermit nicht!? on Mon, 29 Mar 2010 14:21:23 GMT]]></title><description><![CDATA[<p>Rappelnde Kartons sind meist interessanter als das was vorher drin war. Sagen zumindest meine Katzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1875145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1875145</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Mon, 29 Mar 2010 14:21:23 GMT</pubDate></item></channel></rss>