<?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[Tatsächliche Größe (bytes) einer Struktur herausfinden]]></title><description><![CDATA[<p>Hallo,</p>
<p>hab es schon mit sizeof() versucht.<br />
Bin mir aber nicht sicher, ob das der tatsächliche Wert (bytes) ist.</p>
<pre><code class="language-cpp">char* date = const_cast&lt;char*&gt;(&quot;20091105&quot;);
cout &lt;&lt; &quot;date: &quot; &lt;&lt; sizeof(date) &lt;&lt; endl;

object o = new object;
... //die Instanzen von o fuellen
cout &lt;&lt; object: &quot; &lt;&lt; sizeof(o)  &lt;&lt; endl;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/253681/tatsächliche-größe-bytes-einer-struktur-herausfinden</link><generator>RSS for Node</generator><lastBuildDate>Sun, 05 Apr 2026 14:18:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/253681.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 05 Nov 2009 11:46:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Tatsächliche Größe (bytes) einer Struktur herausfinden on Thu, 05 Nov 2009 11:46:41 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>hab es schon mit sizeof() versucht.<br />
Bin mir aber nicht sicher, ob das der tatsächliche Wert (bytes) ist.</p>
<pre><code class="language-cpp">char* date = const_cast&lt;char*&gt;(&quot;20091105&quot;);
cout &lt;&lt; &quot;date: &quot; &lt;&lt; sizeof(date) &lt;&lt; endl;

object o = new object;
... //die Instanzen von o fuellen
cout &lt;&lt; object: &quot; &lt;&lt; sizeof(o)  &lt;&lt; endl;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1803736</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803736</guid><dc:creator><![CDATA[Manuel_XY]]></dc:creator><pubDate>Thu, 05 Nov 2009 11:46:41 GMT</pubDate></item><item><title><![CDATA[Reply to Tatsächliche Größe (bytes) einer Struktur herausfinden on Thu, 05 Nov 2009 11:53:46 GMT]]></title><description><![CDATA[<p>Manuel_XY schrieb:</p>
<blockquote>
<p>hab es schon mit sizeof() versucht.<br />
Bin mir aber nicht sicher, ob das der tatsächliche Wert (bytes) ist.</p>
</blockquote>
<p>Was hast Du denn genau ausprobiert? sizeof wäre eigentlich die Antwort gewesen. Vielleicht hast Du es nur falsch angewendet.</p>
<p>Manuel_XY schrieb:</p>
<blockquote>
<pre><code class="language-cpp">char* date = const_cast&lt;char*&gt;(&quot;20091105&quot;);
cout &lt;&lt; &quot;date: &quot; &lt;&lt; sizeof(date) &lt;&lt; endl;
</code></pre>
</blockquote>
<p>Ui! Also der const_cast ist schonmal Mist. <code>sizeof(date)</code> gibt Dir die Größe von date zurück. <em>date ist aber ein Zeiger</em>.</p>
<p>Manuel_XY schrieb:</p>
<blockquote>
<pre><code class="language-cpp">object o = new object;
... //die Instanzen von o fuellen
cout &lt;&lt; object: &quot; &lt;&lt; sizeof(o)  &lt;&lt; endl;
</code></pre>
</blockquote>
<p>Du meinst wahrscheinlich</p>
<pre><code class="language-cpp">object* o = new object;
cout &lt;&lt; &quot;object: &quot; &lt;&lt; sizeof(*o)     &lt;&lt; endl;
cout &lt;&lt; &quot;object: &quot; &lt;&lt; sizeof(object) &lt;&lt; endl;
</code></pre>
<p>Auch hier ist o wieder ein Zeiger.</p>
<p>Gruß,<br />
SP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803743</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803743</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Thu, 05 Nov 2009 11:53:46 GMT</pubDate></item><item><title><![CDATA[Reply to Tatsächliche Größe (bytes) einer Struktur herausfinden on Thu, 05 Nov 2009 11:54:07 GMT]]></title><description><![CDATA[<p>Schluckt ein Compiler echt einen Const-Cast von String-Literalen?<br />
Ansonsten kannst du aber davon ausgehen, dass sizeof so ziemlich fast immer die größe in Bytes zurückliefert (laut standard ist eher die Anzahl von char's gemeint oder so, wenn ich mich recht entsinne!)</p>
<p>Mfg,<br />
Michael</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803745</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803745</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 05 Nov 2009 11:54:07 GMT</pubDate></item><item><title><![CDATA[Reply to Tatsächliche Größe (bytes) einer Struktur herausfinden on Thu, 05 Nov 2009 12:09:33 GMT]]></title><description><![CDATA[<p>Ich vermute ja, dass Manuels Probleme folgende sind:<br />
a) Er will die Größe eines Objekts <em>zur Laufzeit</em>, benutzt dazu aber eine Technik, die zur <em>Compilezeit</em> greift - das wird schon prinzipbedingt nicht gehen.<br />
b) Er will damit Ziele erreichen, für die es deutlich bessere/einfachere Lösungen gibt. Die Größe eines Objekts im Speicher braucht man jedenfalls so gut wie nie (für Aufgabenstellungen, die jemand bewältigen kann, der sizeof() nicht wirklich kennt <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>Manuel: Sag dochmal, wofür Du das zu brauchen glaubst.</p>
<p>Ansonsten noch 2 Korrekturen:<br />
1.) const_cast ist ein extrem wildes Tier - wenn man das braucht, ist das eine seeeehr seltene/gefährliche/wohlüberlegte Angelegenheit. Und das trifft auf die Initialisierung mit einem Literal garantiert nicht zu.<br />
Ich würde Dir raten, nicht &quot;rumzufrickeln, bis es zu laufen scheint&quot;, sondern kurz zu recherchieren, was das Problem wirklich darstellt. Hier wäre es so einfach gewesen:</p>
<pre><code class="language-cpp">char const* date = &quot;20091105&quot;;
</code></pre>
<p>Prima, oder? <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="😉"
    /><br />
Oder noch einfacher:</p>
<pre><code class="language-cpp">string const date = &quot;20091105&quot;;
</code></pre>
<p>Da brauchst Du auch kein sizeof, sondern bekommst die Länge einfach mit</p>
<pre><code class="language-cpp">cout &lt;&lt; date.size();
// oder:
cout &lt;&lt; date.length(); // identisch zu size()
</code></pre>
<p>Willst Du den Wert von date irgendwann mal ändern, lässt Du einfach (NUR in der string-Variante!!!) das const weg und fertig.</p>
<p>2.)</p>
<p>Manuel_XY schrieb:</p>
<blockquote>
<p>...</p>
<pre><code class="language-cpp">... //die Instanzen von o fuellen
</code></pre>
</blockquote>
<p>Du meinst vermutlich &quot;Member&quot;/&quot;Elemente&quot;/&quot;Attribute&quot;/...<br />
&quot;Instanz&quot; ist ein klar definierter Begriff, der hier einfach nicht passt.<br />
BTW: Dies ist eine gute Gelegenheit, mal zu recherchieren,<br />
- was ein &quot;Konstruktor&quot; ist und<br />
- warum man Objekte nur sehr selten dynamisch (=per new) anlegt und was man dabei beachten müsste.<br />
<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>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803751</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 05 Nov 2009 12:09:33 GMT</pubDate></item><item><title><![CDATA[Reply to Tatsächliche Größe (bytes) einer Struktur herausfinden on Thu, 05 Nov 2009 12:00:22 GMT]]></title><description><![CDATA[<p>&quot;Tatsächliche Größe (bytes) einer Struktur herausfinden&quot;<br />
geht allg. nur, wenn keine pointer im spiel sind...<br />
weil sizeof dann(wie bereits gesagt), nur die größe auf dem festspeicher(stack) zurückgibt.</p>
<p>was möchtest du denn damit anstellen?</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803752</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 05 Nov 2009 12:00:22 GMT</pubDate></item><item><title><![CDATA[Reply to Tatsächliche Größe (bytes) einer Struktur herausfinden on Thu, 05 Nov 2009 14:19:46 GMT]]></title><description><![CDATA[<p>Zunächst einmal Danke für die vielen Antworten.</p>
<p>Ich versuche Größe des zuverschickenden Objekts herauszufinden.<br />
Siehe dazu diesen Thread:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-p-is-1788581.html#1788581" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-p-is-1788581.html#1788581</a></p>
<p>Ich habe hier einen WebService (Server). Dieser bekommt keine Objekte zugeschickt.<br />
Was ich mit Etherape (Sniffer) sehe, ist die Größe der Daten was der Client verschickt.<br />
Ich kann die Typen der Member nicht einfach ändern, die sind vom WebService als (meist) char* vorgegeben. Aus diesem Grund das const_cast&lt;char*&gt;.</p>
<p>So sieht dder Aufbau des zuverschickenden Objects aus.<br />
(ich weiß es ist ein Krampf, aber ich hab den WebService nicht entwickelt,<br />
muss ihn aber verwenden... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> )</p>
<pre><code class="language-cpp">_ns1__test* a = new _ns1__test;
a-&gt;incomingTests = new ns1__ArrayOfTests;
a-&gt;incomingTests-&gt;Tests = new ns1__Tests*[1];
a-&gt;incomingTests-&gt;Tests[0] = new ns1__Tests;
a-&gt;incomingTests-&gt;Tests[0]-&gt;testin = new ns1__TestIn;
a-&gt;incomingTests-&gt;Tests[0]-&gt;testin-&gt;id = &quot;asdf&quot;;
</code></pre>
<p>Ich möchte die Größe von &quot;a&quot; wissen nachdem es mit asdf gefüllt wurde.<br />
Bin mir nämlich nicht sicher ob a nicht einfach leer ist, oder wirklich<br />
die rekursiven Objekte enthält.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803842</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803842</guid><dc:creator><![CDATA[Manuel_XY]]></dc:creator><pubDate>Thu, 05 Nov 2009 14:19:46 GMT</pubDate></item><item><title><![CDATA[Reply to Tatsächliche Größe (bytes) einer Struktur herausfinden on Thu, 05 Nov 2009 14:29:45 GMT]]></title><description><![CDATA[<blockquote>
<p>Ich möchte die Größe von &quot;a&quot; wissen nachdem es mit asdf gefüllt wurde.<br />
Bin mir nämlich nicht sicher ob a nicht einfach leer ist, oder wirklich<br />
die rekursiven Objekte enthält.</p>
</blockquote>
<p>was erhoffst du dir davon?</p>
<p>ansonsten hf bei so ner lib xD<br />
kann mir gerade nur schwerlich vorstellen, dass man die nicht auch besser/einfacher verwenden kann...</p>
<pre><code class="language-cpp">a-&gt;incomingTests-&gt;Tests = new ns1__Tests*[1];
a-&gt;incomingTests-&gt;Tests[0] = new ns1__Tests;
</code></pre>
<p>Sieht so gar falsch aus...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803846</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803846</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 05 Nov 2009 14:29:45 GMT</pubDate></item><item><title><![CDATA[Reply to Tatsächliche Größe (bytes) einer Struktur herausfinden on Thu, 05 Nov 2009 14:38:48 GMT]]></title><description><![CDATA[<p>Was ich mir davon erhoffe:<br />
So kann ich die Größe der verschickten Daten ungefähr einschätzen mit der Größe des zuverschickenden Objekts. Oder auf gut deutsch: ob die Daten, die ich verschicken will, in den tatsächlich verschickten Daten darin sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803853</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803853</guid><dc:creator><![CDATA[Manuel_XY]]></dc:creator><pubDate>Thu, 05 Nov 2009 14:38:48 GMT</pubDate></item><item><title><![CDATA[Reply to Tatsächliche Größe (bytes) einer Struktur herausfinden on Thu, 05 Nov 2009 14:40:53 GMT]]></title><description><![CDATA[<p>[quote=&quot;unskilled&quot;]</p>
<blockquote>
<p>Sieht so gar falsch aus...</p>
</blockquote>
<pre><code class="language-cpp">int soap_call___ns1__test(
    struct soap *soap,
    NULL, // char *endpoint = NULL selects default endpoint for this operation
    NULL, // char *action = NULL selects default action for this operation
    _ns1__test*                          ns1__test,
);

/// &quot;testService&quot;:test is a complexType.
class _ns1__test
{ public:
/// Element incomingTests of type &quot;testService&quot;:ArrayOfTests.
    ns1__ArrayOfTests*                    incomingTests                   1;    ///&lt; Required element.
/// A handle to the soap struct that manages this instance (automatically set)
    struct soap                         *soap                          ;
};

/// &quot;testService&quot;:ArrayOfTests is a complexType.
class ns1__ArrayOfTests
{ public:
/// Size of array of ns1__Tests* is 0..unbounded
    int                                  __sizeTests                    ;
/// Pointer to array of length 0..unbounded
    ns1__Tests*                          *Tests                           0;    ///&lt; Nullable pointer.
/// A handle to the soap struct that manages this instance (automatically set)
    struct soap                         *soap                          ;
};

/// &quot;testService&quot;:Tests is a complexType.
class ns1__Tests
{ public:
/// Element testin of type &quot;testService&quot;:TestIn.
    ns1__TestIn*                          testin                          1;    ///&lt; Nullable pointer.
/// A handle to the soap struct that manages this instance (automatically set)
    struct soap                         *soap                          ;
};

/// &quot;testService&quot;:TestIn is a complexType.
class ns1__TestIn
{ public:
/// Element uniqueid of type xs:string.
    char*                                id                       1;    ///&lt; Nullable pointer.
/// A handle to the soap struct that manages this instance (automatically set)
    struct soap                         *soap                          ;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1803855</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803855</guid><dc:creator><![CDATA[Manuel_XY]]></dc:creator><pubDate>Thu, 05 Nov 2009 14:40:53 GMT</pubDate></item></channel></rss>