<?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[C-String mit Konstantem Wert anlegen, geht das auch dynamisch?]]></title><description><![CDATA[<p>Hallole.</p>
<p>Also ich habe in meinem Programm ziemlich oft einen String (Char Array) angelegt mit einem per #define festgelegten Wert.</p>
<pre><code>....
#define MAX_BUF  4096
...

char var[MAX_BUF];
....
</code></pre>
<p>Dieser MAX_BUF soll nun dynamisch werden.<br />
Das bedeutet, er wird einmalig bei Programmstart festgelegt und gilt dann bis zum Programm Ende.<br />
Entweder soll er 1024 oder 4096 Bytes sein.</p>
<p>Wenn ich nun den Wert als<br />
int MAX_BUF anstatt per define zur Laufzeit festlege, motzt der Compiler natürlich, daß es sich bei der deklaration von var nicht um einen konstanten Wert handelt.</p>
<p>Abhilfe könnte geschaffen werden indem ich var per new anlege:</p>
<pre><code>char *var = new char[MAX_BUF];
</code></pre>
<p>Dann muss ich aber das Programm extrem umschreiben, und überall darauf achten daß, ich mit delete den Speicher wieder lösche.<br />
Das wäre ein riesen Aufwand.<br />
Einfacher wäre es, wenn ich einfach zur Laufzeit den Wert MAX_BUF einmalig festlege und dies auch noch als konstanter Wert.</p>
<p>Nun frage ich mich wie und ob das überhaupt geht und welche Alternativen es gäbe...</p>
<p>Vielleicht hat der eine oder andere nen Tip für mich?</p>
<p>Danke, Mondmann</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/199125/c-string-mit-konstantem-wert-anlegen-geht-das-auch-dynamisch</link><generator>RSS for Node</generator><lastBuildDate>Sat, 03 Oct 2026 00:51:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/199125.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 29 Nov 2007 08:54:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C-String mit Konstantem Wert anlegen, geht das auch dynamisch? on Thu, 29 Nov 2007 08:54:20 GMT]]></title><description><![CDATA[<p>Hallole.</p>
<p>Also ich habe in meinem Programm ziemlich oft einen String (Char Array) angelegt mit einem per #define festgelegten Wert.</p>
<pre><code>....
#define MAX_BUF  4096
...

char var[MAX_BUF];
....
</code></pre>
<p>Dieser MAX_BUF soll nun dynamisch werden.<br />
Das bedeutet, er wird einmalig bei Programmstart festgelegt und gilt dann bis zum Programm Ende.<br />
Entweder soll er 1024 oder 4096 Bytes sein.</p>
<p>Wenn ich nun den Wert als<br />
int MAX_BUF anstatt per define zur Laufzeit festlege, motzt der Compiler natürlich, daß es sich bei der deklaration von var nicht um einen konstanten Wert handelt.</p>
<p>Abhilfe könnte geschaffen werden indem ich var per new anlege:</p>
<pre><code>char *var = new char[MAX_BUF];
</code></pre>
<p>Dann muss ich aber das Programm extrem umschreiben, und überall darauf achten daß, ich mit delete den Speicher wieder lösche.<br />
Das wäre ein riesen Aufwand.<br />
Einfacher wäre es, wenn ich einfach zur Laufzeit den Wert MAX_BUF einmalig festlege und dies auch noch als konstanter Wert.</p>
<p>Nun frage ich mich wie und ob das überhaupt geht und welche Alternativen es gäbe...</p>
<p>Vielleicht hat der eine oder andere nen Tip für mich?</p>
<p>Danke, Mondmann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1412028</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1412028</guid><dc:creator><![CDATA[Mondmann]]></dc:creator><pubDate>Thu, 29 Nov 2007 08:54:20 GMT</pubDate></item><item><title><![CDATA[Reply to C-String mit Konstantem Wert anlegen, geht das auch dynamisch? on Thu, 29 Nov 2007 09:07:53 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">std::string str;
str.reserve(size);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1412032</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1412032</guid><dc:creator><![CDATA[el capitan]]></dc:creator><pubDate>Thu, 29 Nov 2007 09:07:53 GMT</pubDate></item><item><title><![CDATA[Reply to C-String mit Konstantem Wert anlegen, geht das auch dynamisch? on Thu, 29 Nov 2007 09:09:44 GMT]]></title><description><![CDATA[<p>Hmmm...es handelt sich hierbei aber um eine Char-String(Char-Array), nicht um einen STL-String....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1412035</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1412035</guid><dc:creator><![CDATA[Mondmann]]></dc:creator><pubDate>Thu, 29 Nov 2007 09:09:44 GMT</pubDate></item><item><title><![CDATA[Reply to C-String mit Konstantem Wert anlegen, geht das auch dynamisch? on Thu, 29 Nov 2007 09:25:07 GMT]]></title><description><![CDATA[<p>Mondmann schrieb:</p>
<blockquote>
<p>Hmmm...es handelt sich hierbei aber um eine Char-String(Char-Array), nicht um einen STL-String....</p>
</blockquote>
<p>ja, aber da du es ja sowieso umbauen musst, mach es doch gleich richtig.</p>
<p>die größe von arrays muss bei der kompilierung bereits feststehen, deshalb wird dein vorhaben nicht gelingen. entweder du schlägst dich mit new[] und delete[] rum oder du nimmst std::string oder std::vector.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1412044</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1412044</guid><dc:creator><![CDATA[el capitan]]></dc:creator><pubDate>Thu, 29 Nov 2007 09:25:07 GMT</pubDate></item><item><title><![CDATA[Reply to C-String mit Konstantem Wert anlegen, geht das auch dynamisch? on Thu, 29 Nov 2007 09:30:22 GMT]]></title><description><![CDATA[<p>Ein STL String ist nicht drin, da es sich um eine C-Funktion handelt die eienn char* erwartet.<br />
Also muss es wohl new...delete sein...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1412050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1412050</guid><dc:creator><![CDATA[Mondmann]]></dc:creator><pubDate>Thu, 29 Nov 2007 09:30:22 GMT</pubDate></item><item><title><![CDATA[Reply to C-String mit Konstantem Wert anlegen, geht das auch dynamisch? on Thu, 29 Nov 2007 09:32:25 GMT]]></title><description><![CDATA[<p>Mondmann schrieb:</p>
<blockquote>
<p>Ein STL String ist nicht drin, da es sich um eine C-Funktion handelt die eienn char* erwartet.<br />
Also muss es wohl new...delete sein...</p>
</blockquote>
<pre><code class="language-cpp">std::vector&lt;char&gt; data(size);
c_funktion(&amp;data[0]);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1412054</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1412054</guid><dc:creator><![CDATA[el capitan]]></dc:creator><pubDate>Thu, 29 Nov 2007 09:32:25 GMT</pubDate></item><item><title><![CDATA[Reply to C-String mit Konstantem Wert anlegen, geht das auch dynamisch? on Thu, 29 Nov 2007 09:38:35 GMT]]></title><description><![CDATA[<p>Mondmann schrieb:</p>
<blockquote>
<p>Ein STL String ist nicht drin, da es sich um eine C-Funktion handelt die eienn char* erwartet.<br />
Also muss es wohl new...delete sein...</p>
</blockquote>
<p>Beschäftige dich doch mal bitte mit C++.</p>
<pre><code class="language-cpp">std::string str = &quot;Hallo&quot;;
foo( str.c_str() );
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1412060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1412060</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Thu, 29 Nov 2007 09:38:35 GMT</pubDate></item><item><title><![CDATA[Reply to C-String mit Konstantem Wert anlegen, geht das auch dynamisch? on Thu, 29 Nov 2007 09:41:50 GMT]]></title><description><![CDATA[<p>Artchi schrieb:</p>
<blockquote>
<pre><code class="language-cpp">std::string str = &quot;Hallo&quot;;
foo( str.c_str() );
</code></pre>
</blockquote>
<p>Mondmann schrieb:</p>
<blockquote>
<p>eine C-Funktion handelt die eienn char* erwartet.</p>
</blockquote>
<p>...nicht const char*.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1412067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1412067</guid><dc:creator><![CDATA[el capitan]]></dc:creator><pubDate>Thu, 29 Nov 2007 09:41:50 GMT</pubDate></item><item><title><![CDATA[Reply to C-String mit Konstantem Wert anlegen, geht das auch dynamisch? on Thu, 29 Nov 2007 09:43:56 GMT]]></title><description><![CDATA[<p>vl boost::shared_array oder boost::scoped_array?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1412070</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1412070</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Thu, 29 Nov 2007 09:43:56 GMT</pubDate></item></channel></rss>