<?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[string und char*]]></title><description><![CDATA[<p>&lt;!-- --&gt;&lt;!-- --&gt;Hallo,<br />
ich habe folgendes Problem:</p>
<pre><code>JavaVMOption	options[1];
	options[0].optionString = &quot;-Djava.class.path=irgendeinPfad&quot;;
</code></pre>
<p>Dieser Pfad soll nun aber variabel sein, deshalb hab ich das über einen String realisiert:</p>
<pre><code>string path = &quot;-Djava.class.path=&quot;;
	path.append(jpath);
	options[0].optionString = new char[path.length()];
	strcpy(options[0].optionString, path.c_str());  //options[0].optionString verlangt char*
</code></pre>
<p>Meine Frage ist nun ob das elegant ist (z.B. ...=new char...), oder ob es eine bessere Lösung dazu gibt.<br />
Danke und Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/176640/string-und-char</link><generator>RSS for Node</generator><lastBuildDate>Sat, 19 Sep 2026 14:47:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/176640.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 23 Mar 2007 08:45:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to string und char* on Fri, 23 Mar 2007 08:45:46 GMT]]></title><description><![CDATA[<p>&lt;!-- --&gt;&lt;!-- --&gt;Hallo,<br />
ich habe folgendes Problem:</p>
<pre><code>JavaVMOption	options[1];
	options[0].optionString = &quot;-Djava.class.path=irgendeinPfad&quot;;
</code></pre>
<p>Dieser Pfad soll nun aber variabel sein, deshalb hab ich das über einen String realisiert:</p>
<pre><code>string path = &quot;-Djava.class.path=&quot;;
	path.append(jpath);
	options[0].optionString = new char[path.length()];
	strcpy(options[0].optionString, path.c_str());  //options[0].optionString verlangt char*
</code></pre>
<p>Meine Frage ist nun ob das elegant ist (z.B. ...=new char...), oder ob es eine bessere Lösung dazu gibt.<br />
Danke und Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250964</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250964</guid><dc:creator><![CDATA[kp]]></dc:creator><pubDate>Fri, 23 Mar 2007 08:45:46 GMT</pubDate></item><item><title><![CDATA[Reply to string und char* on Fri, 23 Mar 2007 08:56:49 GMT]]></title><description><![CDATA[<p>zu jedem new[] gehört ein delete[] sonst gibts memoryleaks wenn options[0] char verlangt benutz doch path.c_str()!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250969</guid><dc:creator><![CDATA[Ceos]]></dc:creator><pubDate>Fri, 23 Mar 2007 08:56:49 GMT</pubDate></item><item><title><![CDATA[Reply to string und char* on Fri, 23 Mar 2007 09:02:05 GMT]]></title><description><![CDATA[<blockquote>
<p>zu jedem new[] gehört ein delete[] sonst gibts memoryleaks</p>
</blockquote>
<p>Danke, mach ich <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>
<blockquote>
<p>wenn options[0] char verlangt benutz doch path.c_str()!</p>
</blockquote>
<p>Das benutz ich ja im strcpy. Wenn ich direkt schreibe:</p>
<pre><code>options[0].optionString = path.c_str();
</code></pre>
<p>erhalte ich folgende Fehlermeldung:</p>
<pre><code>error C2440: '=' : cannot convert from 'const char *' to 'char *'
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1250974</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250974</guid><dc:creator><![CDATA[kp]]></dc:creator><pubDate>Fri, 23 Mar 2007 09:02:05 GMT</pubDate></item><item><title><![CDATA[Reply to string und char* on Fri, 23 Mar 2007 09:16:02 GMT]]></title><description><![CDATA[<p>kp schrieb:</p>
<blockquote>
<p>...Meine Frage ist nun ob das elegant ist (z.B. ...=new char...), oder ob es eine bessere Lösung dazu gibt.<br />
Danke und Gruß</p>
</blockquote>
<p>Hi,</p>
<p>ich finde das genau richtig (elegant und gut).<br />
IMO ist das genau der Weg, wenn man Daten aus einen std::string einer C-Schnittstelle als non-const-char übergeben muss.<br />
c_str() alleine reicht nicht, wenn die Schnittstelle (hier JavaVMOption::optionString) die Daten ändern (oder sich zumindestens nicht auf const festlegen) will.</p>
<p>Willst Du hinterher mit den Daten weiterarbeiten, musst Du sie natürlich wieder explizit übernehmen</p>
<pre><code class="language-cpp">path = options[0].optionString;
</code></pre>
<p>BTW: Einige finden die &quot;+-Schreibweise&quot; eleganter als das append():</p>
<pre><code class="language-cpp">string path = &quot;-Djava.class.path=&quot;;
path += jpath;
</code></pre>
<p>aber in dem Fall ist das Geschmackssache.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250975</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250975</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Fri, 23 Mar 2007 09:16:02 GMT</pubDate></item><item><title><![CDATA[Reply to string und char* on Fri, 23 Mar 2007 09:03:40 GMT]]></title><description><![CDATA[<p>was sagt denn die beschreibung zu dem options ???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250976</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250976</guid><dc:creator><![CDATA[Ceos]]></dc:creator><pubDate>Fri, 23 Mar 2007 09:03:40 GMT</pubDate></item><item><title><![CDATA[Reply to string und char* on Fri, 23 Mar 2007 09:06:40 GMT]]></title><description><![CDATA[<p>options[0].optionString möchte nen const char* haben...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250979</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250979</guid><dc:creator><![CDATA[kp]]></dc:creator><pubDate>Fri, 23 Mar 2007 09:06:40 GMT</pubDate></item><item><title><![CDATA[Reply to string und char* on Fri, 23 Mar 2007 09:07:25 GMT]]></title><description><![CDATA[<p>sorry natürlich ohne const,<br />
möchte also nur einen char* haben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250982</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250982</guid><dc:creator><![CDATA[kp]]></dc:creator><pubDate>Fri, 23 Mar 2007 09:07:25 GMT</pubDate></item><item><title><![CDATA[Reply to string und char* on Fri, 23 Mar 2007 09:11:30 GMT]]></title><description><![CDATA[<p>mh sorry schlecht formuliert, wie lange muss der string denn in options stehen? weil wenn du das delete[] zu früh aufrufst gehts eventuell später schief ?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250987</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250987</guid><dc:creator><![CDATA[Ceos]]></dc:creator><pubDate>Fri, 23 Mar 2007 09:11:30 GMT</pubDate></item><item><title><![CDATA[Reply to string und char* on Fri, 23 Mar 2007 09:19:00 GMT]]></title><description><![CDATA[<p>Das options wird nur einmal für einen Methodenaufruf gebraucht. Gebe es jetzt einfach am Ende meiner Methode wieder frei.<br />
Danke für eure Tipps!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250992</guid><dc:creator><![CDATA[kp]]></dc:creator><pubDate>Fri, 23 Mar 2007 09:19:00 GMT</pubDate></item><item><title><![CDATA[Reply to string und char* on Fri, 23 Mar 2007 18:37:11 GMT]]></title><description><![CDATA[<p>kp schrieb:</p>
<blockquote>
<pre><code>options[0].optionString = new char[path.length()];
</code></pre>
</blockquote>
<p>Du hast hier ein Zeichen zu wenig reserviert. C-Strings enden immer mit einem Nullzeichen, für das natürlich auch Speicher bereitgestellt werden muss. strcpy fügt dieses Zeichen beim Kopieren immer automatisch dem Zielstring an. Die Funktion weiss aber nicht, ob genügend Speicher vorhanden ist, und überschreibt uU andere Bereiche, was zu undefiniertem Verhalten führt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251340</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Fri, 23 Mar 2007 18:37:11 GMT</pubDate></item><item><title><![CDATA[Reply to string und char* on Sun, 25 Mar 2007 10:44:17 GMT]]></title><description><![CDATA[<p>Wo wir schon bei Strings sind:</p>
<p>in welcher C++ Bibliothek (hoffentlich in der Standatbibliothek) und wie heißen die Funktionen um aus einem String nur Teile herauszulesen?<br />
Z.B. eine Funktion wie &quot;GetPartString(string str, int start, int end)&quot; mit der man den TeilString von 'start' bis 'end' herauslesen kann!</p>
<p>Kennt da jemand was? <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="😕"
    /><br />
(In meinem Buch &quot;C++ Intensivkurs&quot; wurde da nähmlich noch nicht näher drauf eingegangen!)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252108</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252108</guid><dc:creator><![CDATA[LukasBanana]]></dc:creator><pubDate>Sun, 25 Mar 2007 10:44:17 GMT</pubDate></item><item><title><![CDATA[Reply to string und char* on Sun, 25 Mar 2007 12:07:36 GMT]]></title><description><![CDATA[<p>Ja gibts, die Methode nennt sich &quot;substr&quot;, und du findest sie (und andere nuetzliche String-Funktionen) hier erklaert: <a href="http://cppreference.com/cppstring/index.html" rel="nofollow">http://cppreference.com/cppstring/index.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252166</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252166</guid><dc:creator><![CDATA[Blue-Tiger]]></dc:creator><pubDate>Sun, 25 Mar 2007 12:07:36 GMT</pubDate></item><item><title><![CDATA[Reply to string und char* on Sun, 25 Mar 2007 12:43:06 GMT]]></title><description><![CDATA[<p>Cool! Danke! <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="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252192</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252192</guid><dc:creator><![CDATA[LukasBanana]]></dc:creator><pubDate>Sun, 25 Mar 2007 12:43:06 GMT</pubDate></item></channel></rss>