<?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[Reservierung von Speicher für Zeiger auf Strukturen mit zwei weiteren Zeigern]]></title><description><![CDATA[<p>Hallo Zusammen,</p>
<p>ich hab mir vor kurzem einen Quelltext eines anderen Programmierers zu Sachen CGI durchgelesen. Der Autor des Listings verwendet dabei eine Struktur die so aussieht:</p>
<pre><code class="language-cpp">struct CGI_DATEN
{
   char *variable;
   char *daten;
   CGI_DATEN *next;
};
</code></pre>
<p>Im Code verwendet er die Struktur wie folgt:</p>
<pre><code class="language-cpp">CGI_DATEN * ptr_anfang;
ptr_anfang =(struct CGI_DATEN *) malloc(sizeof (struct CGI_DATEN *));
</code></pre>
<p>Nur warum reserviert er hier Speicher für einen Zeiger auf diese Struktur, die er dann dem Zeiger ptr_anfang zuweist ? (bzw. einen Zeiger allgemein, denn die Zeigergröße ist ja immer 4 Bytes, unabh. vom Zeigertyp [jedenfalls auf einer 32Bit Machine])<br />
Ich meine wieso reserviert er nicht 8 Bytes ?? Der Zeiger ist doch vom Typ CGI_DATEN...und die Struktur CGI_DATEN enthält zwei Zeiger auf char, also 2* 4 Bytes (pro Zeiger) ergäbe doch 8 Bytes mindestens, die für diese Struktur reserviert werden müssten. Oder habe ich da was falsch verstanden ?</p>
<p>Schönen Gruß<br />
Xzibit</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/135383/reservierung-von-speicher-für-zeiger-auf-strukturen-mit-zwei-weiteren-zeigern</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 23:19:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/135383.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 01 Feb 2006 18:15:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Reservierung von Speicher für Zeiger auf Strukturen mit zwei weiteren Zeigern on Wed, 01 Feb 2006 18:15:16 GMT]]></title><description><![CDATA[<p>Hallo Zusammen,</p>
<p>ich hab mir vor kurzem einen Quelltext eines anderen Programmierers zu Sachen CGI durchgelesen. Der Autor des Listings verwendet dabei eine Struktur die so aussieht:</p>
<pre><code class="language-cpp">struct CGI_DATEN
{
   char *variable;
   char *daten;
   CGI_DATEN *next;
};
</code></pre>
<p>Im Code verwendet er die Struktur wie folgt:</p>
<pre><code class="language-cpp">CGI_DATEN * ptr_anfang;
ptr_anfang =(struct CGI_DATEN *) malloc(sizeof (struct CGI_DATEN *));
</code></pre>
<p>Nur warum reserviert er hier Speicher für einen Zeiger auf diese Struktur, die er dann dem Zeiger ptr_anfang zuweist ? (bzw. einen Zeiger allgemein, denn die Zeigergröße ist ja immer 4 Bytes, unabh. vom Zeigertyp [jedenfalls auf einer 32Bit Machine])<br />
Ich meine wieso reserviert er nicht 8 Bytes ?? Der Zeiger ist doch vom Typ CGI_DATEN...und die Struktur CGI_DATEN enthält zwei Zeiger auf char, also 2* 4 Bytes (pro Zeiger) ergäbe doch 8 Bytes mindestens, die für diese Struktur reserviert werden müssten. Oder habe ich da was falsch verstanden ?</p>
<p>Schönen Gruß<br />
Xzibit</p>
]]></description><link>https://www.c-plusplus.net/forum/post/983358</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/983358</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 01 Feb 2006 18:15:16 GMT</pubDate></item><item><title><![CDATA[Reply to Reservierung von Speicher für Zeiger auf Strukturen mit zwei weiteren Zeigern on Wed, 01 Feb 2006 18:42:15 GMT]]></title><description><![CDATA[<p>Wie kommst du auf 8 ?<br />
es sind 3 pointer.<br />
Kurt<br />
EDIT: das Beispiel ist entweder falsch oder einfach aus dem Zusammenhang gerissen.<br />
EDIT: tendiere mehr zu falsch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/983382</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/983382</guid><dc:creator><![CDATA[ZuK]]></dc:creator><pubDate>Wed, 01 Feb 2006 18:42:15 GMT</pubDate></item><item><title><![CDATA[Reply to Reservierung von Speicher für Zeiger auf Strukturen mit zwei weiteren Zeigern on Wed, 01 Feb 2006 18:44:23 GMT]]></title><description><![CDATA[<p>Oh hoppala sry for that<br />
wollte eigentlich schreiben: 12 Bytes</p>
]]></description><link>https://www.c-plusplus.net/forum/post/983395</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/983395</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 01 Feb 2006 18:44:23 GMT</pubDate></item><item><title><![CDATA[Reply to Reservierung von Speicher für Zeiger auf Strukturen mit zwei weiteren Zeigern on Thu, 02 Feb 2006 07:00:00 GMT]]></title><description><![CDATA[<p>ich vermute auch einen programmierfehler. da war wohl eher</p>
<pre><code class="language-cpp">CGI_DATEN * ptr_anfang; 
ptr_anfang =(struct CGI_DATEN *) malloc(sizeof (struct CGI_DATEN));
</code></pre>
<p>gemeint. da die meisten betriebssysteme speicher in blöcken von 16 oder mehr bytes allozieren, ist der fehler wohl nicht aufgefallen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/983633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/983633</guid><dc:creator><![CDATA[Konfusius]]></dc:creator><pubDate>Thu, 02 Feb 2006 07:00:00 GMT</pubDate></item><item><title><![CDATA[Reply to Reservierung von Speicher für Zeiger auf Strukturen mit zwei weiteren Zeigern on Thu, 02 Feb 2006 14:10:21 GMT]]></title><description><![CDATA[<p>Ein Programmierfehler ? Huh....*mir fällt ein Stein vom Herzen*</p>
<p>Und ich hab schon die letzte Woche damit verbracht daran rumzurätseln,<br />
warum der das so macht <sup>_</sup>- ja hab sogar mein Wissen über Assembler extra aufgefrischt *grinst*, weil ich mir dachte die Antwort da zu finden.</p>
<p>Ja sehr gut...nur ein Programmierfehler <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>
<p>Gut gut VIELEN DANK<br />
und einen schönen Gruß von mir<br />
Christoph aka. Xzibit</p>
]]></description><link>https://www.c-plusplus.net/forum/post/983997</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/983997</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 02 Feb 2006 14:10:21 GMT</pubDate></item></channel></rss>