<?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[Dynamisches Array zurückgeben.]]></title><description><![CDATA[<p>Ich will ein int Array zurückgeben, dessen Länge erst zur Laufzeit bekannt ist (also mit new erstellen). Ich hab dann ihn als Zeiger Definiert (int *Positionen)<br />
Jedoch wenn ich vom anderen Zeiger (z) einer int Variable etwas zuweisen will funktioniert das nicht (Zugriffsverweigerung) <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>
<pre><code class="language-cpp">void Suche_Positionen(AnsiString String,AnsiString Zeichen,int *Positionen)
{
//......
Positionen[j] = i;
//......
}

main()
{
//...
int i;
int *z;
i = z[0]
//....
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/173519/dynamisches-array-zurückgeben</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 15:05:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/173519.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 16 Feb 2007 18:26:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Dynamisches Array zurückgeben. on Fri, 16 Feb 2007 18:26:27 GMT]]></title><description><![CDATA[<p>Ich will ein int Array zurückgeben, dessen Länge erst zur Laufzeit bekannt ist (also mit new erstellen). Ich hab dann ihn als Zeiger Definiert (int *Positionen)<br />
Jedoch wenn ich vom anderen Zeiger (z) einer int Variable etwas zuweisen will funktioniert das nicht (Zugriffsverweigerung) <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>
<pre><code class="language-cpp">void Suche_Positionen(AnsiString String,AnsiString Zeichen,int *Positionen)
{
//......
Positionen[j] = i;
//......
}

main()
{
//...
int i;
int *z;
i = z[0]
//....
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1229722</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1229722</guid><dc:creator><![CDATA[Hauke]]></dc:creator><pubDate>Fri, 16 Feb 2007 18:26:27 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamisches Array zurückgeben. on Fri, 16 Feb 2007 18:39:24 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<blockquote>
<p>Zugriffsverweigerung</p>
</blockquote>
<p>Schöne Bezeichnung. <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 />
Dein z ist ja auch nicht gültig, da du keinen Speicher allokiert hast. Du hast doch new schon erwähnt, solltest also wissen wie das geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1229733</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1229733</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Fri, 16 Feb 2007 18:39:24 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamisches Array zurückgeben. on Fri, 16 Feb 2007 19:33:24 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>oder besser gleich std::vector benutzen.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1229765</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1229765</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Fri, 16 Feb 2007 19:33:24 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamisches Array zurückgeben. on Fri, 16 Feb 2007 20:33:39 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">//j wird vorher ermittelt
Positionen = new int[j-1];
//.....
Suche_Positionen(.....,z); //der Aufruf.
</code></pre>
<p>,und da das ein Zeiger ist (Positionen) bezieht er sich doch darauf. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1229797</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1229797</guid><dc:creator><![CDATA[Hauke]]></dc:creator><pubDate>Fri, 16 Feb 2007 20:33:39 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamisches Array zurückgeben. on Fri, 16 Feb 2007 20:47:33 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Zum einen war dieser Ausschnitt nicht schon im ersten Post zu sehen. Zum Andern sagt er auch nicht viel aus, zum Beispiel ob j zur Laufzeit wirklich größer 1 ist und ob der Inhalt von <em>Positionen</em> über z wirklich an Suche_Positionen gegeben wird. Daalso noch immer nicht der relevante und komplette Ablauf für uns zu sehen ist, können wir dazu nicht viel sagen, außer das du den Debugger benutzen sollst und/oder std::vector.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1229806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1229806</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Fri, 16 Feb 2007 20:47:33 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamisches Array zurückgeben. on Fri, 16 Feb 2007 20:53:39 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">void __fastcall TForm1::Button1Click(TObject *Sender)
{
        //Zum Testen
        int i;
        int *z;
        Suche_Positionen(&quot;12i456i890i&quot;,&quot;i&quot;,z);
        i=z[0];
}

void Suche_Positionen(AnsiString String,AnsiString Zeichen,int *Positionen)
{
        int i=0,j=0;
        while (true)
        {
                i = Suchen(String,Zeichen,i+1);
                if (i==0) break;
                j++;
        }
        Positionen = new int[j-1];
        i=0;j=0;
        do
        {
                i = Suchen(String,Zeichen,i+1);
                Positionen[j] = i;
                j++;
        } while(i==0);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1229810</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1229810</guid><dc:creator><![CDATA[Hauke]]></dc:creator><pubDate>Fri, 16 Feb 2007 20:53:39 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamisches Array zurückgeben. on Fri, 16 Feb 2007 20:59:37 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>/Edit : Okay langsam wird klarer.</p>
<pre><code class="language-cpp">int *z; // z wird nie initialisert.
Suche_Positionen(&quot;12i456i890i&quot;,&quot;i&quot;,z);
i=z[0];
</code></pre>
<p>Du müßtest schon Suche_Positionen mit der Adresse von z, und bei der Funktion selber mit einer Pointer auf Pointer arbeiten. Oder mit einer Referenz auf Pointer.<br />
Das ganze Gefuddle kannst du dir aber sparen wenn du std::vector verwendest (Ja das ist schon der dritte Hinweis...)</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1229814</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1229814</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Fri, 16 Feb 2007 20:59:37 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamisches Array zurückgeben. on Fri, 16 Feb 2007 21:13:22 GMT]]></title><description><![CDATA[<p>Wie lasse ich denn, den Zeiger (z) auf den bereich, der in der Funktion erstellt wurde, zeigen. Deswegen ist er nicht in der aufrufenden Funktion deklariert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1229835</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1229835</guid><dc:creator><![CDATA[Hauke]]></dc:creator><pubDate>Fri, 16 Feb 2007 21:13:22 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamisches Array zurückgeben. on Fri, 16 Feb 2007 21:24:01 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>grundsätzlich</p>
<pre><code class="language-cpp">void __fastcall TForm1::Button1Click(TObject *Sender)
{
        //Zum Testen
        int i;
        int *z;
        Suche_Positionen(&quot;12i456i890i&quot;,&quot;i&quot;,z);
        i=z[0];
}

void Suche_Positionen(AnsiString String,AnsiString Zeichen,int *&amp;Positionen) // Referenz auf Pointer
{
  ...
        Positionen = new int[j-1];
  ...
}
</code></pre>
<p>Allerdings erstellst du durch das new ein Element zu wenig, und außerdem must du ja das Suchen zweimal machen.</p>
<p>Deshalb solltest du das ganze lieber so machen</p>
<pre><code class="language-cpp">#include &lt;vector&gt; // Am Anfang der Datei
...
void __fastcall TForm1::Button1Click(TObject *Sender)
{
        //Zum Testen
        int i;
        std::vector&lt;int&gt; z;
        Suche_Positionen(&quot;12i456i890i&quot;,&quot;i&quot;,z);
        if (!z.empty())
        {
          i=z[0];
        }
}

void Suche_Positionen(AnsiString String,AnsiString Zeichen,std::vector&lt;int&gt;&amp; Positionen)
{
        int i=0
        while (i != 0)
        {
          i = Suchen(String,Zeichen,i+1);
          if (i!=0) Positionen.push_back(i);
        }
}
</code></pre>
<p>Desweiteren weiß ich ja nicht was die Funktion Suche() machen, aber hoffentlich etwas anders als AnsiString::Pos</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1229843</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1229843</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Fri, 16 Feb 2007 21:24:01 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamisches Array zurückgeben. on Sat, 17 Feb 2007 08:58:04 GMT]]></title><description><![CDATA[<p>Ja danke hab es hinbekommen<br />
Von dieser Vektor Sache hatte ich noch nie was gehört.<br />
Danke für die Hilfe. <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/1229983</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1229983</guid><dc:creator><![CDATA[Hauke]]></dc:creator><pubDate>Sat, 17 Feb 2007 08:58:04 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamisches Array zurückgeben. on Mon, 19 Feb 2007 07:10:56 GMT]]></title><description><![CDATA[<p>Dann informier dich bitte darüber. vector ist Teil das C++Standards.<br />
z.Bsp. hier im Magazin<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-143816.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-143816.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1230883</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1230883</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 19 Feb 2007 07:10:56 GMT</pubDate></item></channel></rss>