<?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[Adresse eines Strings in char-Zeiger]]></title><description><![CDATA[<p>Aloha,</p>
<p>ich habe in meinem Project ein assoziatives Array angelegt. Es besteht aus zwei Stringwerten (map&lt;string, string&gt;) Nun benötige ich in einer anderen Funktion einen char-Pointer auf eine Stelle des Arrays um so Werte des Arrays verändern zu können.<br />
Vielleicht noch ein kleines Beispiel was ich möchte:</p>
<pre><code class="language-cpp">map&lt;string,string&gt; mymap;
void change(char *target)
{
    /* Funktionen die Variable auf die target zeigt verändern */
}
int main (int argc, char **argv)
{
    mymap[&quot;Stelle 1&quot;] = &quot;erste Stelle&quot;;
    mymap[&quot;Stelle 2&quot;] = &quot;zweite Stelle&quot;;
    mymap[&quot;Stelle 3&quot;] = &quot;dritte Stelle&quot;;

    /*Aufruf der Funktion, beispielsweise auf myapp[&quot;Stelle 2&quot;]*/
    change(...);
}
</code></pre>
<p>Wie wandle ich nun eine Stelle in eine char-Pointer um bzw übergebe diese Stelle richtig?</p>
<p>mfg chuqa</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/153533/adresse-eines-strings-in-char-zeiger</link><generator>RSS for Node</generator><lastBuildDate>Mon, 07 Sep 2026 08:23:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/153533.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 18 Jul 2006 09:15:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Adresse eines Strings in char-Zeiger on Tue, 18 Jul 2006 09:15:42 GMT]]></title><description><![CDATA[<p>Aloha,</p>
<p>ich habe in meinem Project ein assoziatives Array angelegt. Es besteht aus zwei Stringwerten (map&lt;string, string&gt;) Nun benötige ich in einer anderen Funktion einen char-Pointer auf eine Stelle des Arrays um so Werte des Arrays verändern zu können.<br />
Vielleicht noch ein kleines Beispiel was ich möchte:</p>
<pre><code class="language-cpp">map&lt;string,string&gt; mymap;
void change(char *target)
{
    /* Funktionen die Variable auf die target zeigt verändern */
}
int main (int argc, char **argv)
{
    mymap[&quot;Stelle 1&quot;] = &quot;erste Stelle&quot;;
    mymap[&quot;Stelle 2&quot;] = &quot;zweite Stelle&quot;;
    mymap[&quot;Stelle 3&quot;] = &quot;dritte Stelle&quot;;

    /*Aufruf der Funktion, beispielsweise auf myapp[&quot;Stelle 2&quot;]*/
    change(...);
}
</code></pre>
<p>Wie wandle ich nun eine Stelle in eine char-Pointer um bzw übergebe diese Stelle richtig?</p>
<p>mfg chuqa</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1099620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1099620</guid><dc:creator><![CDATA[Chuqa]]></dc:creator><pubDate>Tue, 18 Jul 2006 09:15:42 GMT</pubDate></item><item><title><![CDATA[Reply to Adresse eines Strings in char-Zeiger on Tue, 18 Jul 2006 09:18:01 GMT]]></title><description><![CDATA[<p>Hallo,<br />
warum übergibst du nicht einfach den gespeicherten String als Referenz?</p>
<pre><code class="language-cpp">map&lt;string,string&gt; mymap;
void change(std::string&amp; target)
{

}
int main (int argc, char **argv)
{
    mymap[&quot;Stelle 1&quot;] = &quot;erste Stelle&quot;;
    mymap[&quot;Stelle 2&quot;] = &quot;zweite Stelle&quot;;
    mymap[&quot;Stelle 3&quot;] = &quot;dritte Stelle&quot;;

    change(myapp[&quot;Stelle 2&quot;]);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1099624</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1099624</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Tue, 18 Jul 2006 09:18:01 GMT</pubDate></item><item><title><![CDATA[Reply to Adresse eines Strings in char-Zeiger on Tue, 18 Jul 2006 09:22:26 GMT]]></title><description><![CDATA[<p>Weil in der Zielfunktion andere, fremde Funktionen aufgerufen werden, die diesen Wert als char-Pointer erwarten.</p>
<p>mfg chuqa</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1099631</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1099631</guid><dc:creator><![CDATA[Chuqa]]></dc:creator><pubDate>Tue, 18 Jul 2006 09:22:26 GMT</pubDate></item><item><title><![CDATA[Reply to Adresse eines Strings in char-Zeiger on Tue, 18 Jul 2006 09:29:59 GMT]]></title><description><![CDATA[<p>Chuqa schrieb:</p>
<blockquote>
<p>Weil in der Zielfunktion andere, fremde Funktionen aufgerufen werden, die diesen Wert als char-Pointer erwarten.</p>
</blockquote>
<p>Dann hilft dir nur ein &quot;copy-modify-replace&quot;-Ansatz, da dir std::string keine Möglichkeit gibt direkt in seinen Innereien rumzupuhlen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1099638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1099638</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Tue, 18 Jul 2006 09:29:59 GMT</pubDate></item><item><title><![CDATA[Reply to Adresse eines Strings in char-Zeiger on Tue, 18 Jul 2006 09:32:33 GMT]]></title><description><![CDATA[<p>Verändert diese fremde Funktion deinen String?<br />
Wenn nicht, übergib ihr ein const char* über target.c_str().<br />
Wenn doch, mußt du wohl einen temporären char* erzeugen, deinen String dort reinkopieren und nachher alles in Target zurückschreiben.</p>
<pre><code class="language-cpp">char* tstr = new char[target.size()+1];
strncpy(tstr,target.c_str(),target.size());
fremdeFunktion(tstr);
target = tstr;
delete[] tstr;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1099640</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1099640</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 18 Jul 2006 09:32:33 GMT</pubDate></item><item><title><![CDATA[Reply to Adresse eines Strings in char-Zeiger on Tue, 18 Jul 2006 09:41:27 GMT]]></title><description><![CDATA[<p>Ist es erlaubt, über die Adresse des ersten Elements an einen nicht-const-Zeiger zu kommen und darüber den String zu modifizieren? Ich vermute, nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1099644</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1099644</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 18 Jul 2006 09:41:27 GMT</pubDate></item><item><title><![CDATA[Reply to Adresse eines Strings in char-Zeiger on Tue, 18 Jul 2006 09:42:14 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/1387">@Braunstein</a><br />
Falls die Funktion zwar den Inhalt, nicht aber die Länge des Strings verändert, würde ich die Kopie in einem std::vector unterbringen und mir somit das Memory-Management ersparen:</p>
<pre><code class="language-cpp">void change(std::string&amp; target) {
  std::vector&lt;char&gt; temp(target.begin(), target.end());
  temp.push_back(0);
  fremdeFunktion(&amp;temp[0]);
  target.assign(temp.begin(), temp.end());
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1099646</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1099646</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Tue, 18 Jul 2006 09:42:14 GMT</pubDate></item><item><title><![CDATA[Reply to Adresse eines Strings in char-Zeiger on Tue, 18 Jul 2006 09:46:35 GMT]]></title><description><![CDATA[<p>MFK schrieb:</p>
<blockquote>
<p>Ist es erlaubt, über die Adresse des ersten Elements an einen nicht-const-Zeiger zu kommen und darüber den String zu modifizieren? Ich vermute, nicht.</p>
</blockquote>
<p>Nope. Die einzige Möglichkeit legal an einen char* zu kommen wäre &amp;deinString[0]. Da nun aber nicht garantiert ist, dass ein std::string als nullterminiertes Array von char implementiert ist, ist der Zeiger nicht unbedingt äquivalent zu &quot;Anfang der Zeichenkette&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1099648</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1099648</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Tue, 18 Jul 2006 09:46:35 GMT</pubDate></item><item><title><![CDATA[Reply to Adresse eines Strings in char-Zeiger on Tue, 18 Jul 2006 10:05:57 GMT]]></title><description><![CDATA[<p>Ich habe es mit der Methode von Braunstein gemacht und es wird zumindestens ohne Fehler kompiliert.</p>
<p>Ich danke euch ersteinmal recht herzlich.</p>
<p>mfg chuqa.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1099656</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1099656</guid><dc:creator><![CDATA[Chuqa]]></dc:creator><pubDate>Tue, 18 Jul 2006 10:05:57 GMT</pubDate></item></channel></rss>