<?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[Arrays in Funktionen vergrößern ohne explizite Rückgabe]]></title><description><![CDATA[<p>Hallo ihr Leut,<br />
ich möchte ein Array vergrößern, hier verdoppeln und Inhalte spiegeln.</p>
<p>Mit expiliziter Rückgabe des Zeigers geht's natürlich (siehe auskommentierter Code). Warum geht's anders nicht, stehe gerade auf'm Schlauch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Code ist in Qt erstellt, müsste aber für das Problem belanglos sein.</p>
<pre><code>typedef QString datatype;

/*
datatype* arrayDoppeln(datatype array[], int &amp;anz)
{
    int laenge = anz;
    anz *= 2;
    datatype* kopie = new datatype[anz];
    for (int i=0; i&lt;laenge; i++){
        kopie[i] = array[i];
        kopie[anz-i-1] = array[i];
    }
    delete[] array;
    return kopie;
}
*/

void arrayDoppeln(datatype *array, int &amp;anz)
{
    int laenge = anz;
    anz *= 2;
    datatype* kopie = new datatype[anz];
    for (int i=0; i&lt;laenge; i++){
        kopie[i] = array[i];
        kopie[anz-i-1] = array[i];
    }
    delete[] array;
    array = kopie;
}

FrmMain::FrmMain(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::FrmMain)
{
    //Test bei Programmstart
    ui-&gt;setupUi(this);

    int max = 3;
    datatype* feld = new datatype[max];
    feld[0] = &quot;a&quot;;
    feld[1] = &quot;b&quot;;
    feld[2] = &quot;c&quot;;

//    feld = arrayDoppeln(feld,max);
    arrayDoppeln(feld,max);

    for (int i=0;i&lt;max; i++) {
        ui-&gt;listWidget-&gt;addItem(feld[i]);
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/337946/arrays-in-funktionen-vergrößern-ohne-explizite-rückgabe</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 13:56:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/337946.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 12 May 2016 08:22:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Arrays in Funktionen vergrößern ohne explizite Rückgabe on Thu, 12 May 2016 08:22:43 GMT]]></title><description><![CDATA[<p>Hallo ihr Leut,<br />
ich möchte ein Array vergrößern, hier verdoppeln und Inhalte spiegeln.</p>
<p>Mit expiliziter Rückgabe des Zeigers geht's natürlich (siehe auskommentierter Code). Warum geht's anders nicht, stehe gerade auf'm Schlauch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Code ist in Qt erstellt, müsste aber für das Problem belanglos sein.</p>
<pre><code>typedef QString datatype;

/*
datatype* arrayDoppeln(datatype array[], int &amp;anz)
{
    int laenge = anz;
    anz *= 2;
    datatype* kopie = new datatype[anz];
    for (int i=0; i&lt;laenge; i++){
        kopie[i] = array[i];
        kopie[anz-i-1] = array[i];
    }
    delete[] array;
    return kopie;
}
*/

void arrayDoppeln(datatype *array, int &amp;anz)
{
    int laenge = anz;
    anz *= 2;
    datatype* kopie = new datatype[anz];
    for (int i=0; i&lt;laenge; i++){
        kopie[i] = array[i];
        kopie[anz-i-1] = array[i];
    }
    delete[] array;
    array = kopie;
}

FrmMain::FrmMain(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::FrmMain)
{
    //Test bei Programmstart
    ui-&gt;setupUi(this);

    int max = 3;
    datatype* feld = new datatype[max];
    feld[0] = &quot;a&quot;;
    feld[1] = &quot;b&quot;;
    feld[2] = &quot;c&quot;;

//    feld = arrayDoppeln(feld,max);
    arrayDoppeln(feld,max);

    for (int i=0;i&lt;max; i++) {
        ui-&gt;listWidget-&gt;addItem(feld[i]);
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2495557</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2495557</guid><dc:creator><![CDATA[cppAndMe]]></dc:creator><pubDate>Thu, 12 May 2016 08:22:43 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays in Funktionen vergrößern ohne explizite Rückgabe on Thu, 12 May 2016 08:32:18 GMT]]></title><description><![CDATA[<p>Benutze std::vector</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2495566</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2495566</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Thu, 12 May 2016 08:32:18 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays in Funktionen vergrößern ohne explizite Rückgabe on Thu, 12 May 2016 08:46:48 GMT]]></title><description><![CDATA[<p>manni66 schrieb:</p>
<blockquote>
<p>Benutze std::vector</p>
</blockquote>
<p>Vielen Dank für die Antwort. Dass das mit Vectoren geht, ist mir schon klar. Ebenso, dass das Ressourcen kostet <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>Ich möchte gerne wissen, warum es mit Zeigern nicht geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2495572</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2495572</guid><dc:creator><![CDATA[cppAndMe]]></dc:creator><pubDate>Thu, 12 May 2016 08:46:48 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays in Funktionen vergrößern ohne explizite Rückgabe on Thu, 12 May 2016 08:54:41 GMT]]></title><description><![CDATA[<p>cppAndMe schrieb:</p>
<blockquote>
<p>Ich möchte gerne wissen, warum es mit Zeigern nicht geht.</p>
</blockquote>
<p>Weil du es falsch machst. Überlege mal, in welchem Gültigkeitsbereich dein <code>array</code> -Zeiger lebt.</p>
<p>Benutze std::vector.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2495574</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2495574</guid><dc:creator><![CDATA[Better Call Value]]></dc:creator><pubDate>Thu, 12 May 2016 08:54:41 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays in Funktionen vergrößern ohne explizite Rückgabe on Thu, 12 May 2016 08:58:44 GMT]]></title><description><![CDATA[<p>cppAndMe schrieb:</p>
<blockquote>
<p>manni66 schrieb:</p>
<blockquote>
<p>Benutze std::vector</p>
</blockquote>
<p>Vielen Dank für die Antwort. Dass das mit Vectoren geht, ist mir schon klar. Ebenso, dass das Ressourcen kostet <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>
</blockquote>
<p>Welche denn? Vector ist bloß ein Zeiger wie der, den du benutzen möchtest. Bloß dass er fix und fertig mit funktionierendem Code kommt (der dann auch garantiert effizienter ist als dein derzeitiger Versuch).</p>
<blockquote>
<p>Ich möchte gerne wissen, warum es mit Zeigern nicht geht.</p>
</blockquote>
<p>Weil du dafür effektiv std::vector nachprogrammieren musst, aber nicht einmal zu wissen scheinst, wie man überhaupt eine Variable innerhalb einer Funktion ändern kann. Call by reference, schon einmal gehört? Vermutlich ja, denn du benutzt es einmal. Aber nicht da, wo es drauf ankommt.</p>
<p>PS: Ernsthaft: Benutze std::vector.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2495576</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2495576</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 12 May 2016 08:58:44 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays in Funktionen vergrößern ohne explizite Rückgabe on Thu, 12 May 2016 09:16:22 GMT]]></title><description><![CDATA[<p><em>feld</em> ist eine Variable.<br />
Wenn du den Inhalt dieser Variablen in einer Funktion ändern möchtest, musst du deren Adresse übergeben.<br />
Das kannst du über Zeiger oder Referenz machen.</p>
<p>Ja, <em>feld</em> ist ein Zeiger,<br />
Nein, du übergibst nicht die Adresse von <em>feld</em> sondern den Wert von <em>feld</em>.<br />
Dieser Wert ist eine Adresse auf den Speicherbereich, den du mit new bekommen hast.</p>
<p>Benutze std::vector.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2495583</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2495583</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Thu, 12 May 2016 09:16:22 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays in Funktionen vergrößern ohne explizite Rückgabe on Thu, 12 May 2016 09:16:28 GMT]]></title><description><![CDATA[<p>Vielen Dank für die &quot;persönlich&quot; aufmunternden und motivierenden Antworten.</p>
<p>Ich wünsche den hier Helfenden weiterhin viel Freude bei ihrem &quot;pädagogischen&quot; Einsatz.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2495584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2495584</guid><dc:creator><![CDATA[cppAndMe]]></dc:creator><pubDate>Thu, 12 May 2016 09:16:28 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays in Funktionen vergrößern ohne explizite Rückgabe on Thu, 12 May 2016 09:36:58 GMT]]></title><description><![CDATA[<blockquote>
<p>Dass das mit Vectoren geht, ist mir schon klar. Ebenso, dass das Ressourcen kostet <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>
</blockquote>
<p>Bei so neunmal klugen Antworten inklusive diesem Smiley reagieren viele einfach tendenziell genervt, besonders wenn es von jemandem kommt, der im Vergleich wirklich absolut keine Ahnung hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2495586</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2495586</guid><dc:creator><![CDATA[qwqw]]></dc:creator><pubDate>Thu, 12 May 2016 09:36:58 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays in Funktionen vergrößern ohne explizite Rückgabe on Thu, 12 May 2016 15:48:52 GMT]]></title><description><![CDATA[<p>Lies z. Bsp. das hier<br />
<a href="https://www.c-plusplus.net/forum/236421">https://www.c-plusplus.net/forum/236421</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2495622</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2495622</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 12 May 2016 15:48:52 GMT</pubDate></item></channel></rss>