<?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[Frage zu Array mit Zeichenketten]]></title><description><![CDATA[<p>Hi Leute <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>
<p>ich hab hier mal ne etwas allgemeinere Frage zu nem Array aus Zeichenkettenketten.<br />
Ich habe eine Fünktion geschrieben die mir schlicht und einfach nur ein Array aus Zeichenketten zurückgibt **arrayBack().<br />
Der PointerPointer char **myArr dient zur Aufnahme des Rückgabewertes.<br />
Über den Arrayzugriffsoperator kann ich auf jede beliebige Zeichenkette des Arrays zugreifen, aber nur auf eine, möchte ich auf eine zweite oder dritte Zeichenkette zugreifen muss ich immer wieder die Fuktion bzw. ihren Rüchgabewert erneut zuqweisen. Das kann doch nicht sein, über eine Schleife muss es doch dann möglichsein alle Zeichenketten nacheinander auszulesen, sonst müsste ich bei einem Array mit z.b.: 100 Zeichenketten 100 mal zuweisen.<br />
Aber was mach ich falsch und wie geht’s richtig? <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>Hier der Source:</p>
<pre><code class="language-cpp"># include &lt;iostream&gt;

using namespace std;

char **arrayBack();				// Prototype für ein char - Array als Return Wert

void main()
{

	char **myArr = NULL;;		// Deklaration eines Pointers auf ein Array aus Zeichenketten
	myArr = arrayBack();		// Dem Pointer wird der Returnwert der Funktion arrayBack (ein Array aus Zeichenketten) zugewiesen

	cout &lt;&lt; myArr[2] &lt;&lt; endl;	// Ausgabe des Pointers an Stelle 2
	cout &lt;&lt; arrayBack()[3] &lt;&lt; endl; // funktioniert aber warum funktioniert das und die Zeile darunter nicht

	cout &lt;&lt; myArr[4] &lt;&lt; endl;	// Ausgabe des Pointers an Stelle 4 funktioniert nicht

	myArr = arrayBack();		// Jetzt nach erneuter Zuweisung geht's wieder
	cout &lt;&lt; myArr[4] &lt;&lt; endl;

}

char **arrayBack()
{
	char *myArr[]= {&quot;Alpha&quot;,&quot;Beta&quot;,&quot;Gamma&quot;,&quot;Delta&quot;,&quot;Epsilon&quot;}; // Deklaration und initialisierung des Arrays aus Zeichenketten

	return myArr; // Rückgabe des Arrays
}
</code></pre>
<p>Vielen Dank schon mal vorab für eure Hilfe <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>ShadowEater</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/165382/frage-zu-array-mit-zeichenketten</link><generator>RSS for Node</generator><lastBuildDate>Mon, 14 Sep 2026 14:32:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/165382.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 19 Nov 2006 12:33:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu Array mit Zeichenketten on Sun, 19 Nov 2006 12:33:21 GMT]]></title><description><![CDATA[<p>Hi Leute <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>
<p>ich hab hier mal ne etwas allgemeinere Frage zu nem Array aus Zeichenkettenketten.<br />
Ich habe eine Fünktion geschrieben die mir schlicht und einfach nur ein Array aus Zeichenketten zurückgibt **arrayBack().<br />
Der PointerPointer char **myArr dient zur Aufnahme des Rückgabewertes.<br />
Über den Arrayzugriffsoperator kann ich auf jede beliebige Zeichenkette des Arrays zugreifen, aber nur auf eine, möchte ich auf eine zweite oder dritte Zeichenkette zugreifen muss ich immer wieder die Fuktion bzw. ihren Rüchgabewert erneut zuqweisen. Das kann doch nicht sein, über eine Schleife muss es doch dann möglichsein alle Zeichenketten nacheinander auszulesen, sonst müsste ich bei einem Array mit z.b.: 100 Zeichenketten 100 mal zuweisen.<br />
Aber was mach ich falsch und wie geht’s richtig? <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>Hier der Source:</p>
<pre><code class="language-cpp"># include &lt;iostream&gt;

using namespace std;

char **arrayBack();				// Prototype für ein char - Array als Return Wert

void main()
{

	char **myArr = NULL;;		// Deklaration eines Pointers auf ein Array aus Zeichenketten
	myArr = arrayBack();		// Dem Pointer wird der Returnwert der Funktion arrayBack (ein Array aus Zeichenketten) zugewiesen

	cout &lt;&lt; myArr[2] &lt;&lt; endl;	// Ausgabe des Pointers an Stelle 2
	cout &lt;&lt; arrayBack()[3] &lt;&lt; endl; // funktioniert aber warum funktioniert das und die Zeile darunter nicht

	cout &lt;&lt; myArr[4] &lt;&lt; endl;	// Ausgabe des Pointers an Stelle 4 funktioniert nicht

	myArr = arrayBack();		// Jetzt nach erneuter Zuweisung geht's wieder
	cout &lt;&lt; myArr[4] &lt;&lt; endl;

}

char **arrayBack()
{
	char *myArr[]= {&quot;Alpha&quot;,&quot;Beta&quot;,&quot;Gamma&quot;,&quot;Delta&quot;,&quot;Epsilon&quot;}; // Deklaration und initialisierung des Arrays aus Zeichenketten

	return myArr; // Rückgabe des Arrays
}
</code></pre>
<p>Vielen Dank schon mal vorab für eure Hilfe <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>ShadowEater</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1177075</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1177075</guid><dc:creator><![CDATA[ShadowEater]]></dc:creator><pubDate>Sun, 19 Nov 2006 12:33:21 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Array mit Zeichenketten on Sun, 19 Nov 2006 12:57:18 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Zuerst mal : &quot;Funktioniert nicht&quot; ist keine ausreichende Fehlerbeschreibung!</p>
<p>Das Grundproblem in deinem Code ist, das du einen Pointer auf eine lokale Variable, in deinem Fall ein Array von String-Literalen ist. Das erzeugt auf jedenfall undefiniertes Verhalten, denn nach dem Ende der Funktion gibt es die Variable nicht mehr, und jeder Pointer darauf ist ungültig.</p>
<p>Warum erstellst du nicht ein statisches konstantes Array?</p>
<pre><code class="language-cpp">static const char * const myArr[]= {&quot;Alpha&quot;,&quot;Beta&quot;,&quot;Gamma&quot;,&quot;Delta&quot;,&quot;Epsilon&quot;};
</code></pre>
<p>Das kannst du nun in eine Header-Datei packen und überall dort wo du es brauchst includen. Die extra Funktion brauchst du nicht.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1177093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1177093</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sun, 19 Nov 2006 12:57:18 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Array mit Zeichenketten on Sun, 19 Nov 2006 14:45:23 GMT]]></title><description><![CDATA[<p>D*A*N*K*E akari <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /> ,</p>
<p>ich hab tatsächlich übersehen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> dass ich das Array in der Funktion nicht static gemacht hab <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>ShadowEater</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1177202</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1177202</guid><dc:creator><![CDATA[ShadowEater]]></dc:creator><pubDate>Sun, 19 Nov 2006 14:45:23 GMT</pubDate></item></channel></rss>