<?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[Frage zu Quelltext]]></title><description><![CDATA[<pre><code class="language-cpp">class tSafeString // String-Klasse mit abgesichertem Index
{
public:
    tSafeString(int len) // Max. Länge muss vorgegeben werden
    {
        maxLen = len;
        safestr = new char[len]; // Externe Speicheranforderung
        mist = 0; // Dummy
    }
    ~tSafeString()
    {
        delete[] safestr;
        safestr=0;
    }
    char&amp; operator[](int i);
    // In einer realen Klasse müsste auch ein Kopierkonstruktor
    // und ein Zuweisungsoperator implementiert werden.
private:
    char *safestr; // der String ist extern!
    char mist;     // Dummy fuer Fehlzugriffe
    int maxLen;
};
</code></pre>
<p>was bedeutet denn char* safestr ; // der string ist extern<br />
und oben auch safestr = new char[len]; // Externe Speicheranforderung</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/268514/frage-zu-quelltext</link><generator>RSS for Node</generator><lastBuildDate>Tue, 01 Sep 2026 17:53:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/268514.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 10 Jun 2010 10:50:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu Quelltext on Thu, 10 Jun 2010 10:50:55 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class tSafeString // String-Klasse mit abgesichertem Index
{
public:
    tSafeString(int len) // Max. Länge muss vorgegeben werden
    {
        maxLen = len;
        safestr = new char[len]; // Externe Speicheranforderung
        mist = 0; // Dummy
    }
    ~tSafeString()
    {
        delete[] safestr;
        safestr=0;
    }
    char&amp; operator[](int i);
    // In einer realen Klasse müsste auch ein Kopierkonstruktor
    // und ein Zuweisungsoperator implementiert werden.
private:
    char *safestr; // der String ist extern!
    char mist;     // Dummy fuer Fehlzugriffe
    int maxLen;
};
</code></pre>
<p>was bedeutet denn char* safestr ; // der string ist extern<br />
und oben auch safestr = new char[len]; // Externe Speicheranforderung</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909941</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Thu, 10 Jun 2010 10:50:55 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Quelltext on Thu, 10 Jun 2010 11:09:04 GMT]]></title><description><![CDATA[<p>Das ist aber ein schlechtes Buch.<br />
Ah, schon wieder gallileo computing.<br />
Fein, dann gibt es ja ein gemeinsames Muster, an dem man außergewöhnliche Bücher erkennt. <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>
<pre><code class="language-cpp">class tSafeString //Präfix t ohne besondere Bedeutung, Erbe von Borland?
{ 
public: 
    tSafeString(int len) //size_t statt int
    { 
        maxLen = len; 
        safestr = new char[len]; // Externe Speicheranforderung 
        mist = 0; // Dummy //lol. Erst den dummy mist nennen, um dann 
//per Kommentar ihn wieder dummy zu nennen. Warum nicht 
//gleich dummy?
    } 
    ~tSafeString() 
    { 
        delete[] safestr; 
        safestr=0; // absolut wirkungslose Augenwischerei
    } 
    char&amp; operator[](int i); 
    // In einer realen Klasse müsste auch ein Kopierkonstruktor 
    // und ein Zuweisungsoperator implementiert werden. 
private: 
    char *safestr; // der String ist extern! 
//extern ist ein C++-Schlüsselwort und sollte hier nicht verwendet werden, 
//denn jeder nimmt erstmal die Schlüsselwortbedeutung an. 
    char mist;     // Dummy fuer Fehlzugriffe 
//Fehlzugriffe stillschweigend zu unterdrücken wird sicher nicht 
//dafür sorgen, daß man Programmierfehler findet. 
    int maxLen; 
};
</code></pre>
<p>Ich wollte Dir gerade ein Tutorial raussuchen, wo was über Zeiger und new in C++ steht, aber mein Nameserver scheint abzukacken und ich komme nicht raus auf neue Seiten.</p>
<p>extern meint hier, daß der Speicher nicht im tSafeString-Objekt liegt, sondern woanders, auf dem sogenannten Freispeicher. safestr zeigt nur dorthin. new[] belegt dort Speicher und delete[] würde ihn wieder freigeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909942</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 10 Jun 2010 11:09:04 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Quelltext on Thu, 10 Jun 2010 11:05:26 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">char mist;     // Dummy fuer Fehlzugriffe
</code></pre>
<p>Wozu braucht man da noch The Daily WTF? <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/1909947</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909947</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 10 Jun 2010 11:05:26 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Quelltext on Thu, 10 Jun 2010 11:07:18 GMT]]></title><description><![CDATA[<p>Bashar schrieb:</p>
<blockquote>
<pre><code class="language-cpp">char mist;     // Dummy fuer Fehlzugriffe
</code></pre>
<p>Wozu braucht man da noch The Daily WTF? <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>
</blockquote>
<p>Um die immer wieder selben doofen Witze in den Kommentaren zu lesen? Um konstruierte Texte zu lesen die künstlich aufgebauscht wurden, um wenigstens etwas Content zu liefern? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909948</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Thu, 10 Jun 2010 11:07:18 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Quelltext on Thu, 10 Jun 2010 11:09:33 GMT]]></title><description><![CDATA[<p>aha. also wenn ich mir sizeof(Safestring) anzeigen lassen würde,<br />
wäre der speicher darin nicht enthalten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909949</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909949</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Thu, 10 Jun 2010 11:09:33 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Quelltext on Thu, 10 Jun 2010 11:12:26 GMT]]></title><description><![CDATA[<p>blurry333 schrieb:</p>
<blockquote>
<p>aha. also wenn ich mir sizeof(Safestring) anzeigen lassen würde,<br />
wäre der speicher darin nicht enthalten?</p>
</blockquote>
<p>Genau.</p>
<pre><code class="language-cpp">char *safestr; //4 Byte, denn 32-Bit-Adressen hasben 4 Byte, egal auf was sie zeigen
char mist;     //1 Byte
int maxLen; //4 Byte
</code></pre>
<p>Macht zusammen 12.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909951</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909951</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 10 Jun 2010 11:12:26 GMT</pubDate></item></channel></rss>