<?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[::operator new(10)]]></title><description><![CDATA[<p>HalliHallo</p>
<p>hab gestern folgendes konstrukt gefunden</p>
<pre><code class="language-cpp">void *memory;
memory = ::operator new(10); //für 10 byte
</code></pre>
<p>Was hat das genau zu bedeuten? Wie kann ich mit den 10 bytes arbeiten und kann ich auch die [] anwenden, z.B.</p>
<pre><code class="language-cpp">mem[0] = 1;
</code></pre>
<p>ich hoffe ihr könnt meine Fragen beantworten, denn dazu finde ich leider (fast)überhaupt nix im Netz <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/157865/operator-new-10</link><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 12:06:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/157865.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 30 Aug 2006 08:22:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ::operator new(10) on Wed, 30 Aug 2006 08:22:42 GMT]]></title><description><![CDATA[<p>HalliHallo</p>
<p>hab gestern folgendes konstrukt gefunden</p>
<pre><code class="language-cpp">void *memory;
memory = ::operator new(10); //für 10 byte
</code></pre>
<p>Was hat das genau zu bedeuten? Wie kann ich mit den 10 bytes arbeiten und kann ich auch die [] anwenden, z.B.</p>
<pre><code class="language-cpp">mem[0] = 1;
</code></pre>
<p>ich hoffe ihr könnt meine Fragen beantworten, denn dazu finde ich leider (fast)überhaupt nix im Netz <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127385</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127385</guid><dc:creator><![CDATA[VirtualDreams]]></dc:creator><pubDate>Wed, 30 Aug 2006 08:22:42 GMT</pubDate></item><item><title><![CDATA[Reply to ::operator new(10) on Wed, 30 Aug 2006 08:27:01 GMT]]></title><description><![CDATA[<p>du musst den void-pointer vorher noch in was casten, zB so:</p>
<p>void* memory=::operator new(10);<br />
int*ptr=(int*)memory;</p>
<p>ptr[0] = 1; usw</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127391</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127391</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Wed, 30 Aug 2006 08:27:01 GMT</pubDate></item><item><title><![CDATA[Reply to ::operator new(10) on Wed, 30 Aug 2006 08:47:36 GMT]]></title><description><![CDATA[<p>Danke erst mal für den Hinweis/Hilfe, das hilft mir schon sehr viel weiter!</p>
<p>Ich kann also mit den [] arbeiten, aber auch direkt damit? Und ich muß nur aufpassen das ich nicht über die 10 byte Grenze drüberhinausschieße?<br />
Also würde in deinem int-Fall ptr[2] zb nicht mehr funktionieren, wenn int 4 byte groß ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127408</guid><dc:creator><![CDATA[VirtualDreams]]></dc:creator><pubDate>Wed, 30 Aug 2006 08:47:36 GMT</pubDate></item><item><title><![CDATA[Reply to ::operator new(10) on Wed, 30 Aug 2006 08:59:59 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">p[2];
</code></pre>
<p>entspricht (wenn p ein Zeiger und nicht void* ist)</p>
<pre><code class="language-cpp">*(p + 2);
</code></pre>
<p>, du kannst den []-Operator also ohne Probleme verwenden. Natürlich darfst du dabei nicht auf unallokierten Speicher zugreifen, aber der Compiler bewahrt dich nicht davor, da musst du selber drauf achten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127425</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Wed, 30 Aug 2006 08:59:59 GMT</pubDate></item><item><title><![CDATA[Reply to ::operator new(10) on Wed, 30 Aug 2006 09:03:02 GMT]]></title><description><![CDATA[<p>nee, das ist schon klar das ich selbst drauf achten muß, ist selbstverständlich <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="🙂"
    /><br />
Vielen dank für eure Hilfe, wirklich sehr schnell und produktiv =))</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127429</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127429</guid><dc:creator><![CDATA[VirtualDreams]]></dc:creator><pubDate>Wed, 30 Aug 2006 09:03:02 GMT</pubDate></item><item><title><![CDATA[Reply to ::operator new(10) on Wed, 30 Aug 2006 11:09:16 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5941">@VirtualDreams</a>:<br />
Du hast übrigens schon recht:<br />
Wenn du den Zeiger der auf deine 10 Byte zeigt in einen int castest, dann hast du nur Zugriff auf p[0] und p[1], da von p[2] nur 2 byte allokiert sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127463</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127463</guid><dc:creator><![CDATA[dEUs]]></dc:creator><pubDate>Wed, 30 Aug 2006 11:09:16 GMT</pubDate></item><item><title><![CDATA[Reply to ::operator new(10) on Wed, 30 Aug 2006 11:11:52 GMT]]></title><description><![CDATA[<p>du würdest mit einem zugriff auf p[2] 2 bytes überschreiben die dir nicht gehören (vorausgesetzt int == 4 byte) deswegen sollte in der speicheranforderung nicht die anzahl der bytes stehen sondern ein vielfaches der größe des gewünschten typs:</p>
<pre><code class="language-cpp">void* mem = operator new(3 * sizeof(int) );
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1127465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127465</guid><dc:creator><![CDATA[Cpt. Tanga]]></dc:creator><pubDate>Wed, 30 Aug 2006 11:11:52 GMT</pubDate></item><item><title><![CDATA[Reply to ::operator new(10) on Wed, 30 Aug 2006 11:22:21 GMT]]></title><description><![CDATA[<p>Dann kann ich doch gleich ein int array erzeugen:</p>
<pre><code class="language-cpp">int *ptr = new int[10]
</code></pre>
<p>Was ist der dann sinn von dem konstrukt? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127473</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127473</guid><dc:creator><![CDATA[ja...und?]]></dc:creator><pubDate>Wed, 30 Aug 2006 11:22:21 GMT</pubDate></item><item><title><![CDATA[Reply to ::operator new(10) on Wed, 30 Aug 2006 11:34:13 GMT]]></title><description><![CDATA[<p>.filmor schrieb:</p>
<blockquote>
<pre><code class="language-cpp">p[2];
</code></pre>
<p>entspricht (wenn p ein Zeiger und nicht void* ist)</p>
<pre><code class="language-cpp">*(p + 2);
</code></pre>
<p>, du kannst den []-Operator also ohne Probleme verwenden. Natürlich darfst du dabei nicht auf unallokierten Speicher zugreifen, aber der Compiler bewahrt dich nicht davor, da musst du selber drauf achten.</p>
</blockquote>
<p>Genaugenommen entspricht p[ 2 ] einem *<strong>( p + 2 * sizeof( p ) )</strong></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127477</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127477</guid><dc:creator><![CDATA[lolz]]></dc:creator><pubDate>Wed, 30 Aug 2006 11:34:13 GMT</pubDate></item><item><title><![CDATA[Reply to ::operator new(10) on Wed, 30 Aug 2006 11:36:19 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13970">@lolz</a>:<br />
Nein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127483</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 30 Aug 2006 11:36:19 GMT</pubDate></item><item><title><![CDATA[Reply to ::operator new(10) on Wed, 30 Aug 2006 11:38:35 GMT]]></title><description><![CDATA[<p>nein. es wird nicht der abstand in bytes angegeben sondern in einheiten der größe des entsprechenden typs. mit p == int == 4 bytes übernimmt der compiler die stelle *sizeof (p) weswegen man dies auch weglässt und theoretisch auch 2[p] schreiben könnte.</p>
<p>gute frage warum man es so schreibt sicherlich könnte man wenn man es unbedingt byte genau haben will auch ein char array definieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127485</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127485</guid><dc:creator><![CDATA[Cpt. Tanga]]></dc:creator><pubDate>Wed, 30 Aug 2006 11:38:35 GMT</pubDate></item><item><title><![CDATA[Reply to ::operator new(10) on Wed, 30 Aug 2006 11:39:40 GMT]]></title><description><![CDATA[<p>hmpf schonwieder zu spät <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title="=/"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127487</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127487</guid><dc:creator><![CDATA[Cpt. Tanga]]></dc:creator><pubDate>Wed, 30 Aug 2006 11:39:40 GMT</pubDate></item><item><title><![CDATA[Reply to ::operator new(10) on Wed, 30 Aug 2006 11:47:24 GMT]]></title><description><![CDATA[<p>lolz schrieb:</p>
<blockquote>
<p>Genaugenommen entspricht p[ 2 ] einem *<strong>( p + 2 * sizeof( p ) )</strong></p>
</blockquote>
<p>falsch.<br />
(char*)(p+2) ist bereits (char*)p+2*sizeof(p)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127494</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127494</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Wed, 30 Aug 2006 11:47:24 GMT</pubDate></item><item><title><![CDATA[Reply to ::operator new(10) on Wed, 30 Aug 2006 12:57:08 GMT]]></title><description><![CDATA[<p>[quote=&quot;volkard&quot;]</p>
<p>lolz schrieb:</p>
<blockquote>
<p>Genaugenommen entspricht p[ 2 ] einem *<strong>( p + 2 * sizeof( p ) )</strong></p>
</blockquote>
<p>Aber Deine Formel macht es nicht besser <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 />
Die Formel ist tatsächlich etwas irreführend, weil</p>
<ul>
<li>sie &quot;+&quot; schreibt, wo der Compiler bei einem gegebenen &quot;+&quot; bereits um sizeof(...) im Adressraum weiterginge, aber</li>
<li>&quot;soviel Bytes weiter&quot; meint.</li>
</ul>
<p>Ich hätte noch einen ganz anderen Einwand:<br />
eigentlich müsste es &quot;sizeof(*p)&quot; heißen, oder ?</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127561</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127561</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 30 Aug 2006 12:57:08 GMT</pubDate></item><item><title><![CDATA[Reply to ::operator new(10) on Wed, 30 Aug 2006 12:52:21 GMT]]></title><description><![CDATA[<p>Weil (char*)p + 2 * sizeof(p) == &amp;p[2] == (p + 2) != (p + 2 * sizeof(p)).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127573</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127573</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 30 Aug 2006 12:52:21 GMT</pubDate></item><item><title><![CDATA[Reply to ::operator new(10) on Wed, 30 Aug 2006 12:57:21 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>eigentlich müsste es<br />
&quot;byteposition(p[ 2 ]) entspricht ...</p>
</blockquote>
<p>genao. statt &quot;byteposition&quot; zu schreiben hab ich auf char* gecastet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127579</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127579</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Wed, 30 Aug 2006 12:57:21 GMT</pubDate></item><item><title><![CDATA[Reply to ::operator new(10) on Wed, 30 Aug 2006 22:39:46 GMT]]></title><description><![CDATA[<p>mmhh, ist ein pointer nicht immer 4 byte groß?<br />
deswegen funzt auch sowas wie forward deklaration etc.<br />
und genau deswegen stimme ich dem einwand von simon2 zu.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1128037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1128037</guid><dc:creator><![CDATA[ConfusedGuy]]></dc:creator><pubDate>Wed, 30 Aug 2006 22:39:46 GMT</pubDate></item><item><title><![CDATA[Reply to ::operator new(10) on Thu, 31 Aug 2006 06:36:01 GMT]]></title><description><![CDATA[<p>ConfusedGuy schrieb:</p>
<blockquote>
<p>mmhh, ist ein pointer nicht immer 4 byte groß?</p>
</blockquote>
<p>Nö. Auf x86_64 Systemen ist er 8 Byte groß.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1128087</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1128087</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Thu, 31 Aug 2006 06:36:01 GMT</pubDate></item></channel></rss>