<?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[Funktion mit Rückgabetyp char* gibt nichts zurück]]></title><description><![CDATA[<p>Hallo, und zwar habe ich eine Funktion geschrieben, mit der mit Hilfe von TinyXML bestimmte Inhalte einer XML Datei ausgelesen werden.</p>
<p>Das funktioniert soweit ganz gut. Die reine funktionsweise der Funktion stimmt auch. Jedoch wird am Ende nicht das Resultat sondern sozusagen garnichts zurückgegeben.</p>
<p>Meine Funktion:</p>
<pre><code class="language-cpp">char* getnode(char* key)
{
	TiXmlDocument xmldoc;
	xmldoc.LoadFile(&quot;LIC_Base.xml&quot;);
	TiXmlNode *node = xmldoc.RootElement();
	node = node-&gt;FirstChildElement(&quot;DialogInformation&quot;);
	TiXmlElement *elem = node-&gt;FirstChildElement();
	char* res = &quot;&quot;;

	for(; elem; elem = elem-&gt;NextSiblingElement(&quot;add&quot;))
	{
		if(strcmp(elem-&gt;Attribute(&quot;key&quot;), key) == 0)
		{
			const char* result = elem-&gt;Attribute(&quot;value&quot;);
			res = const_cast&lt;char*&gt;(result);			
		}
	}
	// Bis hierhin klappt alles
	return res; // Hier passiert der Fehler
}
</code></pre>
<p>Ich hoffe mir kann jemand sagen wo mein Fehler liegt.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/243937/funktion-mit-rückgabetyp-char-gibt-nichts-zurück</link><generator>RSS for Node</generator><lastBuildDate>Sat, 19 Sep 2026 15:51:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/243937.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 23 Jun 2009 08:50:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktion mit Rückgabetyp char* gibt nichts zurück on Tue, 23 Jun 2009 08:50:03 GMT]]></title><description><![CDATA[<p>Hallo, und zwar habe ich eine Funktion geschrieben, mit der mit Hilfe von TinyXML bestimmte Inhalte einer XML Datei ausgelesen werden.</p>
<p>Das funktioniert soweit ganz gut. Die reine funktionsweise der Funktion stimmt auch. Jedoch wird am Ende nicht das Resultat sondern sozusagen garnichts zurückgegeben.</p>
<p>Meine Funktion:</p>
<pre><code class="language-cpp">char* getnode(char* key)
{
	TiXmlDocument xmldoc;
	xmldoc.LoadFile(&quot;LIC_Base.xml&quot;);
	TiXmlNode *node = xmldoc.RootElement();
	node = node-&gt;FirstChildElement(&quot;DialogInformation&quot;);
	TiXmlElement *elem = node-&gt;FirstChildElement();
	char* res = &quot;&quot;;

	for(; elem; elem = elem-&gt;NextSiblingElement(&quot;add&quot;))
	{
		if(strcmp(elem-&gt;Attribute(&quot;key&quot;), key) == 0)
		{
			const char* result = elem-&gt;Attribute(&quot;value&quot;);
			res = const_cast&lt;char*&gt;(result);			
		}
	}
	// Bis hierhin klappt alles
	return res; // Hier passiert der Fehler
}
</code></pre>
<p>Ich hoffe mir kann jemand sagen wo mein Fehler liegt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1731438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1731438</guid><dc:creator><![CDATA[inflames2k]]></dc:creator><pubDate>Tue, 23 Jun 2009 08:50:03 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit Rückgabetyp char* gibt nichts zurück on Tue, 23 Jun 2009 08:58:44 GMT]]></title><description><![CDATA[<p>Der Speicher, auf den der <code>char*</code> zeigt, ist wahrscheinlich nach Beenden ungültig, weil die lokalen Variablen zerstört werden. Abgesehen davon ist <code>const_cast</code> meistens eine ganz schlechte Idee.</p>
<p>Kannst du nicht einen <code>std::string</code> zurückgeben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1731443</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1731443</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 23 Jun 2009 08:58:44 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit Rückgabetyp char* gibt nichts zurück on Tue, 23 Jun 2009 09:02:14 GMT]]></title><description><![CDATA[<p>Ich glaub es liegt daran, dass du in der Schleife eine Variable erstellst, die nach dem verlassen wieder gelöscht wird. Da du nur die Adresse an res übergibst, ist somit auch nichts mehr vorhanden nach verlassen der Schleife.</p>
<p>#Edit da war Nexus schneller <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1731446</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1731446</guid><dc:creator><![CDATA[Neo Gandar]]></dc:creator><pubDate>Tue, 23 Jun 2009 09:02:14 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit Rückgabetyp char* gibt nichts zurück on Tue, 23 Jun 2009 09:27:31 GMT]]></title><description><![CDATA[<p>Ok dank euch. <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="🙂"
    /> Wer weis wo ich da mit den Gedanken wieder war. Mit std::string klappts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1731460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1731460</guid><dc:creator><![CDATA[inflames2k]]></dc:creator><pubDate>Tue, 23 Jun 2009 09:27:31 GMT</pubDate></item></channel></rss>