<?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[Private const Zeiger auf new char element welches erst im Konstrukteur entsteht]]></title><description><![CDATA[<p>Hi,</p>
<p>Ich habe eine klasse in der ich im Ptivate bereich einen char * const habe.</p>
<p>Im Konstrukteur der Klasse wird das 3D Dynamische Array initialiesiert<br />
(hier nochmal dank an drakon &amp; Skym0sh0). Mein Problem ist jetzt das der zeiger auf ein spezielles element aus diesem Array zeigen soll.</p>
<p>wie mache ich das?</p>
<p>Ich habe es mit initialiesierungsliste versucht weiß aber nicht wie das funktionieren soll.</p>
<p>Mfg. Matyr</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/214929/private-const-zeiger-auf-new-char-element-welches-erst-im-konstrukteur-entsteht</link><generator>RSS for Node</generator><lastBuildDate>Tue, 13 Oct 2026 04:33:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/214929.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 04 Jun 2008 16:59:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Private const Zeiger auf new char element welches erst im Konstrukteur entsteht on Wed, 04 Jun 2008 17:37:37 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Ich habe eine klasse in der ich im Ptivate bereich einen char * const habe.</p>
<p>Im Konstrukteur der Klasse wird das 3D Dynamische Array initialiesiert<br />
(hier nochmal dank an drakon &amp; Skym0sh0). Mein Problem ist jetzt das der zeiger auf ein spezielles element aus diesem Array zeigen soll.</p>
<p>wie mache ich das?</p>
<p>Ich habe es mit initialiesierungsliste versucht weiß aber nicht wie das funktionieren soll.</p>
<p>Mfg. Matyr</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1522672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1522672</guid><dc:creator><![CDATA[Matyr]]></dc:creator><pubDate>Wed, 04 Jun 2008 17:37:37 GMT</pubDate></item><item><title><![CDATA[Reply to Private const Zeiger auf new char element welches erst im Konstrukteur entsteht on Wed, 04 Jun 2008 17:19:58 GMT]]></title><description><![CDATA[<p>Zeig bitte mal ein wenig Code. Im Grunde genommen ist es das gleiche, wie du sonst auch einen Zeiger zuweist. Dann hast du hald einfach irgendwie p* = &amp;a[5], oder so.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1522685</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1522685</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 04 Jun 2008 17:19:58 GMT</pubDate></item><item><title><![CDATA[Reply to Private const Zeiger auf new char element welches erst im Konstrukteur entsteht on Wed, 04 Jun 2008 17:24:35 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class XXX{

const char *p;

 XXX() : p(new char[50]){}
 ~XXX() { delete p;}
};
</code></pre>
<p>glaub so</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1522689</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1522689</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Wed, 04 Jun 2008 17:24:35 GMT</pubDate></item><item><title><![CDATA[Reply to Private const Zeiger auf new char element welches erst im Konstrukteur entsteht on Wed, 04 Jun 2008 17:38:11 GMT]]></title><description><![CDATA[<p>Verkürzter auschnitt:</p>
<pre><code class="language-cpp">class Beispiel
{
    private:

    char * const my_null;
    char * const my_max;

    public:

    Beispiel()
    { 

     Karte = new char**[Daten.a];  // sternchen dahinter 

		for(int i=0;i&lt;=Daten.a;i++)
		{
			Karte[i] = new char*[Daten.b]; 
		}// sternchen dahinter, und nicht dereferenzieren 

		for(int i=0;i&lt;=Daten.a;i++) 
		{
			for(int j=0;j&lt;=Daten.b;j++)
			{
				Karte[i][j] = new char[Daten.c]; 
			}
		}

    }       //// Hier soll my_null=Karte[0][0][0] gesetzt werden und my_max    auf          den Maximal wert;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1522696</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1522696</guid><dc:creator><![CDATA[Matyr]]></dc:creator><pubDate>Wed, 04 Jun 2008 17:38:11 GMT</pubDate></item><item><title><![CDATA[Reply to Private const Zeiger auf new char element welches erst im Konstrukteur entsteht on Wed, 04 Jun 2008 17:39:49 GMT]]></title><description><![CDATA[<p>Matyr schrieb:</p>
<blockquote>
<pre><code class="language-cpp">Karte = new char**[Daten.a];  // sternchen dahinter
</code></pre>
</blockquote>
<p>und Karte ist wo definiert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1522699</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1522699</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 04 Jun 2008 17:39:49 GMT</pubDate></item><item><title><![CDATA[Reply to Private const Zeiger auf new char element welches erst im Konstrukteur entsteht on Wed, 04 Jun 2008 17:42:00 GMT]]></title><description><![CDATA[<p>Im Private bereich</p>
<pre><code class="language-cpp">char* const my_null;
	char ***Karte;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1522701</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1522701</guid><dc:creator><![CDATA[Matyr]]></dc:creator><pubDate>Wed, 04 Jun 2008 17:42:00 GMT</pubDate></item><item><title><![CDATA[Reply to Private const Zeiger auf new char element welches erst im Konstrukteur entsteht on Wed, 04 Jun 2008 17:51:04 GMT]]></title><description><![CDATA[<p>Wie würdest du auf den Wert den zugfreien?<br />
Macht genau das und dann ganz einfach einem Pointer auf den Datentypen die Adresse mittels &amp;-Opderator zuweisen. Fertig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1522711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1522711</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 04 Jun 2008 17:51:04 GMT</pubDate></item><item><title><![CDATA[Reply to Private const Zeiger auf new char element welches erst im Konstrukteur entsteht on Wed, 04 Jun 2008 17:55:19 GMT]]></title><description><![CDATA[<p>Das Problem ist das man const werte bei der initialiesierung uweisen muss (soweit ich mich erinner).</p>
<p>und wenn ich :my_null(&amp;Karte[0][0][0])</p>
<p>mache klappt es nicht.</p>
<p>Folgender runtime error:</p>
<p>Unbehandelte Ausnahme bei 0x00411c58 in Auslesen.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xcccccccc.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1522715</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1522715</guid><dc:creator><![CDATA[Matyr]]></dc:creator><pubDate>Wed, 04 Jun 2008 17:55:19 GMT</pubDate></item><item><title><![CDATA[Reply to Private const Zeiger auf new char element welches erst im Konstrukteur entsteht on Wed, 04 Jun 2008 17:56:45 GMT]]></title><description><![CDATA[<p>Ein char*** ist kein Array, es sei denn, die bloße Möglichkeit, den Indexoperator anwenden zu können, genügt dir zur Charakterisierung eines Arrays. Zudem liegen die einzelnen Elemente nicht in einem zusammenhängenden Speicherblock, womit mir der Sinn von my_null und my_max fraglich erscheint.<br />
Sei das wie es sei... konstante nicht-statische Member (auch etwas, dass selten gerechtfertigt ist) <em>müssen</em> in der Initialisierungsliste initialisiert werden. Da der Inhalt voraussetzungsgemäß vom Wert von Karte abhängen soll, muss Karte vor diesen Membern initialisiert werden. Das geht nur, wenn Karte ebenfalls in der Initialisierungsliste auftaucht <em>und</em> in der Klassendefinition vor my_null bzw. my_max auftaucht. Die eigentliche Initialisierung von Karte und mynull,mymax ist demgegenüber einfach: die Ermittelung des Wertes von Karte (und aller damit zusammenhängenden Allokationen) können auch in einer separaten Initialisierungsfunktion durchgeführt werden, die den Wert einfach zurückgibt. Da die Funktion auch bei der Definition des Copy-ctors nützlich sein dürfte, schlägst du gleich 2 Fliegen mit einer Klappe.</p>
<pre><code class="language-cpp">class Beispiel
{
    private:
    char*** Karte;
    char * const my_null;
    char * const my_max;
    static char*** Init(const foo&amp; daten)
    {
        char*** p = new char**[daten.a];
        ... // der ganze Kram von oben
        return p;
    }
    public:

    Beispiel()
    : Karte(Init(daten)),my_null(&amp;Karte[0][0][0]),my_max(&amp;Karte[a][b][c])
    {}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1522716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1522716</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 04 Jun 2008 17:56:45 GMT</pubDate></item><item><title><![CDATA[Reply to Private const Zeiger auf new char element welches erst im Konstrukteur entsteht on Wed, 04 Jun 2008 18:31:05 GMT]]></title><description><![CDATA[<p>Wenn ich zwei- oder dreidimensionale Datenfelder verwalten will, lege ich immer ein eindimensionales Feld (Array) an. Auf die einzelnen Elemente greife ich immer über eine Index-Berechnung zu:</p>
<p><strong>2d</strong><br />
Länge des Feldes = Spalten x Zeilen<br />
Zugriff auf Element = zeile x Spalten + spalte</p>
<p><strong>3d</strong><br />
Länge des Feldes = Spalten x Zeilen x Ebenen (==z)<br />
Zugriff auf Element = ebene x (Spalten x Zeilen) + zeile x Spalten + spalte</p>
<p>So habe ich alle Datenelemente &quot;beisammen&quot; und kann so vor allem das Feld einfach initialisieren.</p>
<pre><code class="language-cpp">for(size_t i = 0; i &lt; field_length; ++i) data[i] = initial_value;
</code></pre>
<p>Welche Vorzüge &quot;meine&quot; Variante gegenüber der deinen hat, kann ich dir leider nicht sagen, da mir hierfür die nötige Erfahrung fehlt.</p>
<p>Grüße... Heiko</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1522735</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1522735</guid><dc:creator><![CDATA[bwbg]]></dc:creator><pubDate>Wed, 04 Jun 2008 18:31:05 GMT</pubDate></item><item><title><![CDATA[Reply to Private const Zeiger auf new char element welches erst im Konstrukteur entsteht on Wed, 04 Jun 2008 18:38:16 GMT]]></title><description><![CDATA[<p>bwbg schrieb:</p>
<blockquote>
<p>Welche Vorzüge &quot;meine&quot; Variante gegenüber der deinen hat, kann ich dir leider nicht sagen, da mir hierfür die nötige Erfahrung fehlt.</p>
<p>Grüße... Heiko</p>
</blockquote>
<p>Sie ist einfacher, fehlerunanfälliger, intuitiver und (wahrscheinlich) schneller.</p>
<p>Allerdings ist auch dem immer noch std::vector vorzuziehen..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1522741</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1522741</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 04 Jun 2008 18:38:16 GMT</pubDate></item></channel></rss>