<?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[char** Probleme]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe eine Methode die eine Liste von Wörtern zurückgeben soll. Diese Liste von Wörtern ist mir bereits vor dem Compilieren bekannt.</p>
<p>Also die Wörterliste ist: Hund, Katze, Maus.</p>
<p>Nun habe ich eine Methode die diese Liste zurückgeben soll. Nun hab ich mir gedacht ich mach es so:</p>
<pre><code class="language-cpp">char** LeseTiere(unsigned int &amp;iSize) {
	char** pNamen;

	pNamen[0] = &quot;Hund&quot;;
	pNamen[1] = &quot;Katze&quot;;
	pNamen[2] = &quot;Maus&quot;;
	out_iSize = 3;

	return pNamen;
}
</code></pre>
<p>Ich sehe schon das da ein Fehler ist, denn es wird nirgendwo der Speicher für die drei char-Zeiger festegelegt (bzw. vorgegeben das es drei sind). Wie mache ich das? Ich kann doch keinen Speicher allozieren, denn wann soll ich diesen freigeben...</p>
<p>Danke für eure Hilfe,<br />
ein verzweifelter Noob--</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/177836/char-probleme</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 03:41:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/177836.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 04 Apr 2007 14:43:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to char** Probleme on Wed, 04 Apr 2007 14:43:52 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe eine Methode die eine Liste von Wörtern zurückgeben soll. Diese Liste von Wörtern ist mir bereits vor dem Compilieren bekannt.</p>
<p>Also die Wörterliste ist: Hund, Katze, Maus.</p>
<p>Nun habe ich eine Methode die diese Liste zurückgeben soll. Nun hab ich mir gedacht ich mach es so:</p>
<pre><code class="language-cpp">char** LeseTiere(unsigned int &amp;iSize) {
	char** pNamen;

	pNamen[0] = &quot;Hund&quot;;
	pNamen[1] = &quot;Katze&quot;;
	pNamen[2] = &quot;Maus&quot;;
	out_iSize = 3;

	return pNamen;
}
</code></pre>
<p>Ich sehe schon das da ein Fehler ist, denn es wird nirgendwo der Speicher für die drei char-Zeiger festegelegt (bzw. vorgegeben das es drei sind). Wie mache ich das? Ich kann doch keinen Speicher allozieren, denn wann soll ich diesen freigeben...</p>
<p>Danke für eure Hilfe,<br />
ein verzweifelter Noob--</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1259334</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1259334</guid><dc:creator><![CDATA[N00b--]]></dc:creator><pubDate>Wed, 04 Apr 2007 14:43:52 GMT</pubDate></item><item><title><![CDATA[Reply to char** Probleme on Wed, 04 Apr 2007 15:09:17 GMT]]></title><description><![CDATA[<p>Eine einfache Lösung wäre dieses:</p>
<pre><code class="language-cpp">char* LeseTiere(unsigned int iIndex) {
   static char *pNamen[] = {&quot;Hund&quot;, &quot;Katze&quot;, &quot;Maus&quot;};
	int iArrayLength=sizeof(pNamen)/sizeof(char *);

	if (iIndex &gt;= iArrayLength) {
		return 0; // Fehler
	} else {
		return pNamen[iIndex];
	}
}
</code></pre>
<p>Durch das static ist der Speicher auch ausserhalb gültig. Allerdings constant. -&gt; Kopie machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1259344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1259344</guid><dc:creator><![CDATA[Mokka]]></dc:creator><pubDate>Wed, 04 Apr 2007 15:09:17 GMT</pubDate></item><item><title><![CDATA[Reply to char** Probleme on Wed, 04 Apr 2007 15:15:22 GMT]]></title><description><![CDATA[<p>wie wär's mit mehrdimensionalen array?</p>
<pre><code class="language-cpp">char** getList(int&amp; listLength){
 char* tiere[3]={&quot;T-Rex&quot;, &quot;mammut&quot;, &quot;Godzilla&quot;};
 listLength=3;
 return tiere;
}
</code></pre>
<p>sollte iegentlich klappen... oder?</p>
<p>edit: static ist in diesem fall nicht erforderlich, ändert sich ja nichts... (die funktion an sich wird im speicher nicht herumgeschoben--&gt; der zeiger kann bedenkenlos zurückgegeben werden)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1259346</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1259346</guid><dc:creator><![CDATA[Andrey]]></dc:creator><pubDate>Wed, 04 Apr 2007 15:15:22 GMT</pubDate></item><item><title><![CDATA[Reply to char** Probleme on Wed, 04 Apr 2007 15:22:00 GMT]]></title><description><![CDATA[<p>Ach so, er wollte die gesamte Liste zurück haben...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1259351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1259351</guid><dc:creator><![CDATA[Mokka]]></dc:creator><pubDate>Wed, 04 Apr 2007 15:22:00 GMT</pubDate></item><item><title><![CDATA[Reply to char** Probleme on Wed, 04 Apr 2007 15:22:54 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13810">@Andrey</a>:<br />
Das Array muss trotzdem static sein, damit es auch ausserhalb der Funktion gültig 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/1259353</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1259353</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 04 Apr 2007 15:22:54 GMT</pubDate></item><item><title><![CDATA[Reply to char** Probleme on Wed, 04 Apr 2007 15:26:45 GMT]]></title><description><![CDATA[<p>@ Mokka:</p>
<pre><code class="language-cpp">char**
</code></pre>
<p>ja<br />
@ LordJaxom: hm hm hm... wieso das? muss ich ma ausprobieren, sekunde^^ <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
also, dass es mit einzelnen konstanten char-arrays geht, da bin ich mir 100% sicher...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1259354</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1259354</guid><dc:creator><![CDATA[Andrey]]></dc:creator><pubDate>Wed, 04 Apr 2007 15:26:45 GMT</pubDate></item><item><title><![CDATA[Reply to char** Probleme on Wed, 04 Apr 2007 15:31:00 GMT]]></title><description><![CDATA[<p>Mokka schrieb:</p>
<blockquote>
<p>Durch das static ist der Speicher auch ausserhalb gültig. Allerdings constant. -&gt; Kopie machen.</p>
</blockquote>
<p>Das Array steht ja im Heap. Ist doch nicht konstant...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1259358</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1259358</guid><dc:creator><![CDATA[Mokka]]></dc:creator><pubDate>Wed, 04 Apr 2007 15:31:00 GMT</pubDate></item><item><title><![CDATA[Reply to char** Probleme on Wed, 04 Apr 2007 15:35:56 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10648">@LordJaxom</a> sry, hatte grad nen kleinen denkfehler gehabt, stimmt: so darf man's nicht machen.<br />
*schäm* <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1259360</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1259360</guid><dc:creator><![CDATA[Andrey]]></dc:creator><pubDate>Wed, 04 Apr 2007 15:35:56 GMT</pubDate></item></channel></rss>