<?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[struct member in einer Reihe im Speicher?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich würde für mein aktuelles Projekt gerne die Eigenschaft benutzen, dass in C++ die Member von struct alle in nacheinander im Speicher stehen. Ich diese also mit memcpy(pointer, target, sizeof(structure)); kopieren kann. Ich will mich hier eigentlich nur nochmal versichern, dass das auch wirklich zum Standard gehört, damit ich später keine böse Überaschung erlebe.</p>
<p>Wenn struct und class identisch sein sollen in C++ heißt das, dass ich auch class benutzen kann und dann trotzdem noch alle Member in einer Reihe im Speicher stehen?</p>
<p>MfG<br />
Scarabol</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/276857/struct-member-in-einer-reihe-im-speicher</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 05:29:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/276857.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 09 Nov 2010 14:01:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to struct member in einer Reihe im Speicher? on Tue, 09 Nov 2010 14:01:40 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich würde für mein aktuelles Projekt gerne die Eigenschaft benutzen, dass in C++ die Member von struct alle in nacheinander im Speicher stehen. Ich diese also mit memcpy(pointer, target, sizeof(structure)); kopieren kann. Ich will mich hier eigentlich nur nochmal versichern, dass das auch wirklich zum Standard gehört, damit ich später keine böse Überaschung erlebe.</p>
<p>Wenn struct und class identisch sein sollen in C++ heißt das, dass ich auch class benutzen kann und dann trotzdem noch alle Member in einer Reihe im Speicher stehen?</p>
<p>MfG<br />
Scarabol</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1977809</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977809</guid><dc:creator><![CDATA[Scarabol]]></dc:creator><pubDate>Tue, 09 Nov 2010 14:01:40 GMT</pubDate></item><item><title><![CDATA[Reply to struct member in einer Reihe im Speicher? on Tue, 09 Nov 2010 14:04:28 GMT]]></title><description><![CDATA[<p>Scarabol schrieb:</p>
<blockquote>
<p>memcpy(pointer, target, sizeof(structure));</p>
</blockquote>
<p>Die Zieladdresse kommt bei memcpy zuerst. Wenn structure ein <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-194356.html" rel="nofollow">POD</a> ist, dann darfst Du das so machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1977812</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977812</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Tue, 09 Nov 2010 14:04:28 GMT</pubDate></item><item><title><![CDATA[Reply to struct member in einer Reihe im Speicher? on Tue, 09 Nov 2010 14:07:12 GMT]]></title><description><![CDATA[<p>Ob das problemlos geht, hängt auch davon ab, <code>wozu</code> und <code>wohin</code> Du kopieren willst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1977814</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977814</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Tue, 09 Nov 2010 14:07:12 GMT</pubDate></item><item><title><![CDATA[Reply to struct member in einer Reihe im Speicher? on Tue, 09 Nov 2010 14:10:27 GMT]]></title><description><![CDATA[<p>Die stehen schon hintereinander. Beachte aber was &quot;hintereinander&quot; heißt:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
struct S{
    int i;
    double d;
};

int main()
{
    S s[2];
    std::cout &lt;&lt; sizeof(int) &lt;&lt; std::endl;
    std::cout &lt;&lt; sizeof(double) &lt;&lt; std::endl;
    std::cout &lt;&lt; sizeof(S) &lt;&lt; std::endl;
    std::cout &lt;&lt; &amp;s[0].i &lt;&lt; std::endl;
    std::cout &lt;&lt; &amp;s[0].d &lt;&lt; std::endl;
    std::cout &lt;&lt; &amp;s[1].i &lt;&lt; std::endl;
    std::cout &lt;&lt; &amp;s[1].d &lt;&lt; std::endl;
    return 0;
}
</code></pre>
<pre><code>4
 8
 16
 0012FF40
 0012FF48
 0012FF50
 0012FF58
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1977817</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977817</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Tue, 09 Nov 2010 14:10:27 GMT</pubDate></item></channel></rss>