<?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[Übergabe char* an Klasse - Speicher allokieren?]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>Beispiel:</p>
<pre><code>classname::construct(char* data, int size)
{
classdata=data;
classsize=size;
}
</code></pre>
<p>Nun die Frage muss der Speicher für &quot;char* classdata&quot; in der Klassen internen allokiert werden?<br />
Sprich:</p>
<pre><code>(char*)malloc(size);
</code></pre>
<p>Weil es funktioniert ja auch ohne?</p>
<p>Danke Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/330699/übergabe-char-an-klasse-speicher-allokieren</link><generator>RSS for Node</generator><lastBuildDate>Thu, 02 Jul 2026 22:50:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/330699.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 22 Jan 2015 13:12:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Übergabe char* an Klasse - Speicher allokieren? on Thu, 22 Jan 2015 13:12:25 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>Beispiel:</p>
<pre><code>classname::construct(char* data, int size)
{
classdata=data;
classsize=size;
}
</code></pre>
<p>Nun die Frage muss der Speicher für &quot;char* classdata&quot; in der Klassen internen allokiert werden?<br />
Sprich:</p>
<pre><code>(char*)malloc(size);
</code></pre>
<p>Weil es funktioniert ja auch ohne?</p>
<p>Danke Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2439038</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439038</guid><dc:creator><![CDATA[Klar141]]></dc:creator><pubDate>Thu, 22 Jan 2015 13:12:25 GMT</pubDate></item><item><title><![CDATA[Reply to Übergabe char* an Klasse - Speicher allokieren? on Thu, 22 Jan 2015 13:13:11 GMT]]></title><description><![CDATA[<p>Bitte mit Erklärung! Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2439039</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439039</guid><dc:creator><![CDATA[Klar141]]></dc:creator><pubDate>Thu, 22 Jan 2015 13:13:11 GMT</pubDate></item><item><title><![CDATA[Reply to Übergabe char* an Klasse - Speicher allokieren? on Thu, 22 Jan 2015 13:15:08 GMT]]></title><description><![CDATA[<p>Also ich meine Nein da der Speicher bereits allokiert ist und ich nur einen Zeiger auf diesen übergebe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2439040</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439040</guid><dc:creator><![CDATA[Klar141]]></dc:creator><pubDate>Thu, 22 Jan 2015 13:15:08 GMT</pubDate></item><item><title><![CDATA[Reply to Übergabe char* an Klasse - Speicher allokieren? on Thu, 22 Jan 2015 13:27:26 GMT]]></title><description><![CDATA[<p>Und wie würde man zusätzlichen Speicher allokieren nachdem bereits einmal speicher für eine char* allokiert wurde?</p>
<p>Danke Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2439042</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439042</guid><dc:creator><![CDATA[Klar141]]></dc:creator><pubDate>Thu, 22 Jan 2015 13:27:26 GMT</pubDate></item><item><title><![CDATA[Reply to Übergabe char* an Klasse - Speicher allokieren? on Thu, 22 Jan 2015 13:37:21 GMT]]></title><description><![CDATA[<p>Klar141 schrieb:</p>
<blockquote>
<p>Nun die Frage muss der Speicher für &quot;char* classdata&quot; in der Klassen internen allokiert werden?</p>
</blockquote>
<p>Das kommt drauf an, ob du eine Kopie der Daten haben willst, oder die Originaldaten einfach referenzieren willst. Was hast du vor?</p>
<p>Benutze kein malloc / free.<br />
Benutze kein new / delete.<br />
Benutze smart pointer.</p>
<p>Klar141 schrieb:</p>
<blockquote>
<p>Und wie würde man zusätzlichen Speicher allokieren nachdem bereits einmal speicher für eine char* allokiert wurde?</p>
</blockquote>
<p>Mit realloc, sofern mit C-Funktionen alloiziert wurde. Anders geht's nicht.<br />
Nutz hierfür std::vector.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2439043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439043</guid><dc:creator><![CDATA[Singender Holzkübel]]></dc:creator><pubDate>Thu, 22 Jan 2015 13:37:21 GMT</pubDate></item><item><title><![CDATA[Reply to Übergabe char* an Klasse - Speicher allokieren? on Thu, 22 Jan 2015 14:01:57 GMT]]></title><description><![CDATA[<p>Klar141 schrieb:</p>
<blockquote>
<p>Weil es funktioniert ja auch ohne?</p>
</blockquote>
<p>Sprach der Programmierer, bevor er sich in den Fuß schoss...<br />
(Das &quot;es funktioniert ja&quot; ist einfach eine zu gute Vorlage aus der Praxis)</p>
<p>Klar141 schrieb:</p>
<blockquote>
<p>Nun die Frage muss der Speicher für &quot;char* classdata&quot; in der Klassen internen allokiert werden?</p>
</blockquote>
<p>Kommt darauf an woher der Zeiger kommt, wie dieser freigegeben und in deiner Klasse genutzt werden soll. Wenn die Klasse nur auf diesen Verweisen soll (und der Speicher über die Lebenszeit der Klasse nicht freigegeben wird) kann man wohl mit einem Zeiger ohne eigene Allozierung leben. Die Frage nach zusätzlichen Speicher deutet für mich aber an, das dies nicht der Fall ist, zudem stellt sich die Frage ob die Daten modifiziert werden sollen. Dies alles ist aber nicht erkennbar, auch nicht wo dieser Speicher herkommt - so das man hier keine sinnvollen Antworten geben kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2439046</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439046</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Thu, 22 Jan 2015 14:01:57 GMT</pubDate></item><item><title><![CDATA[Reply to Übergabe char* an Klasse - Speicher allokieren? on Thu, 22 Jan 2015 14:45:42 GMT]]></title><description><![CDATA[<p>Danke für die Antworten! Jetzt habe ichs kapiert.</p>
<p>Wie kann ich eig. zusätzlich zum bereits allokierten Speicher zusätzlichen Speicher allokieren also einfach erweitern?</p>
<p>Danke Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2439055</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439055</guid><dc:creator><![CDATA[Klar141]]></dc:creator><pubDate>Thu, 22 Jan 2015 14:45:42 GMT</pubDate></item><item><title><![CDATA[Reply to Übergabe char* an Klasse - Speicher allokieren? on Thu, 22 Jan 2015 14:49:33 GMT]]></title><description><![CDATA[<p>Mit <code>malloc()</code> alloziierter Speicher? -&gt; <code>realloc()</code> . Tu es nicht.<br />
Mit <code>new</code> ? Garnicht. Neuen Speicher passender Größe anfordern, alte werte kopieren, alten Speicher freigeben. Tu es nicht.<br />
<code>std::vector</code> !!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2439056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439056</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Thu, 22 Jan 2015 14:49:33 GMT</pubDate></item></channel></rss>