<?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[void Pointer um bestimmte Größe verschieben?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe einen void Pointer, der auf einen bestimmten Speicherbereich<br />
zeigt, und möchte nun diesen Pointer um eine vorher nicht direkt festgelegte<br />
Größe, vielleicht 4 oder 8 Byte, verschieben. Die Größe ist in einer<br />
Variable gespeichert, also ungefähr so:</p>
<pre><code class="language-cpp">// void* pPtr ist vorher bereits definiert worden
UINT uSize = 4;
void* pNewPtr = pPtr + uSize;
</code></pre>
<p>Allgemein ist das leider nur möglich, wenn ich den Pointer direkt<br />
als z.B. char* deklariere, da der Compiler dann weiß, um wieviele Bytes er<br />
verschieben soll, aber void hat ja keine direkt bekannte Größe, daher<br />
kriege ich von meinem Compiler ne Fehlermeldung.<br />
Gitb es da ne Möglichkeit?<br />
Vielen Dank<br />
Norman.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/170319/void-pointer-um-bestimmte-größe-verschieben</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 00:58:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/170319.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 14 Jan 2007 13:50:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to void Pointer um bestimmte Größe verschieben? on Sun, 14 Jan 2007 13:50:41 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe einen void Pointer, der auf einen bestimmten Speicherbereich<br />
zeigt, und möchte nun diesen Pointer um eine vorher nicht direkt festgelegte<br />
Größe, vielleicht 4 oder 8 Byte, verschieben. Die Größe ist in einer<br />
Variable gespeichert, also ungefähr so:</p>
<pre><code class="language-cpp">// void* pPtr ist vorher bereits definiert worden
UINT uSize = 4;
void* pNewPtr = pPtr + uSize;
</code></pre>
<p>Allgemein ist das leider nur möglich, wenn ich den Pointer direkt<br />
als z.B. char* deklariere, da der Compiler dann weiß, um wieviele Bytes er<br />
verschieben soll, aber void hat ja keine direkt bekannte Größe, daher<br />
kriege ich von meinem Compiler ne Fehlermeldung.<br />
Gitb es da ne Möglichkeit?<br />
Vielen Dank<br />
Norman.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1209676</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1209676</guid><dc:creator><![CDATA[Norman0406]]></dc:creator><pubDate>Sun, 14 Jan 2007 13:50:41 GMT</pubDate></item><item><title><![CDATA[Reply to void Pointer um bestimmte Größe verschieben? on Sun, 14 Jan 2007 13:55:34 GMT]]></title><description><![CDATA[<p>Caste einfach pPtr nach char* (oder was auch immer du als &quot;Einheit&quot; benutzt).</p>
<pre><code class="language-cpp">UINT uSize = 4;
void* pNewPtr = static_cast&lt;char*&gt; (pPtr) + uSize; // pNewPtr ist uSize Bytes hinter pPtr.
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1209681</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1209681</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Sun, 14 Jan 2007 13:55:34 GMT</pubDate></item><item><title><![CDATA[Reply to void Pointer um bestimmte Größe verschieben? on Sun, 14 Jan 2007 14:02:20 GMT]]></title><description><![CDATA[<p>das Problem ist, dass ich nicht weiß, auf welchen Datentyp ich den<br />
Pointer casten muss, da es allgemein gehalten sein soll. Ich übergebe<br />
einfach einer Funktion einen Pointer und eine Größe, und diese Funktion<br />
soll mir einen Pointer zurück liefern, der um die Größe verschoben ist...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1209688</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1209688</guid><dc:creator><![CDATA[Norman0406]]></dc:creator><pubDate>Sun, 14 Jan 2007 14:02:20 GMT</pubDate></item><item><title><![CDATA[Reply to void Pointer um bestimmte Größe verschieben? on Sun, 14 Jan 2007 14:05:33 GMT]]></title><description><![CDATA[<p>char ist immer genau ein byte groß. wenn du also tatsächlich immer um N bytes verschieben willst und nicht um N [größe des typs], dann liefert casten nach char was du willst.</p>
<p>allerdings ist das nicht grad empfehlenswert, wenn du nicht absolut sicher bist, was du da machst ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1209690</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1209690</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Sun, 14 Jan 2007 14:05:33 GMT</pubDate></item><item><title><![CDATA[Reply to void Pointer um bestimmte Größe verschieben? on Sun, 14 Jan 2007 14:05:39 GMT]]></title><description><![CDATA[<p>AFAIK <em>muss</em> ein char-Pointer den gesamten Speicher lückenlos durchlaufen können. Außerdem ist sizeof (char) immer 1, char ist also die kleinste addressierbare Speichereinheit. Allgemeiner gehts nicht.<br />
Du kannst dir allerdings nicht sicher sein, ob ein char tatsächlich aus 8 Bit besteht!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1209691</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1209691</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Sun, 14 Jan 2007 14:05:39 GMT</pubDate></item><item><title><![CDATA[Reply to void Pointer um bestimmte Größe verschieben? on Sun, 14 Jan 2007 14:10:37 GMT]]></title><description><![CDATA[<p>ahso, ok das ist genau was ich brauche. Ich caste einfach den Pointer<br />
nach char.<br />
Aber warum kann es dabei Probleme geben, wie kann es sein, dass char<br />
nicht 8 bit groß ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1209696</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1209696</guid><dc:creator><![CDATA[Norman0406]]></dc:creator><pubDate>Sun, 14 Jan 2007 14:10:37 GMT</pubDate></item><item><title><![CDATA[Reply to void Pointer um bestimmte Größe verschieben? on Sun, 14 Jan 2007 14:17:31 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Das Thema 1Byte != 8 Bit hatten wir erst vor kurzem <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-170179.html" rel="nofollow">hier</a>.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1209700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1209700</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sun, 14 Jan 2007 14:17:31 GMT</pubDate></item><item><title><![CDATA[Reply to void Pointer um bestimmte Größe verschieben? on Sun, 14 Jan 2007 14:18:11 GMT]]></title><description><![CDATA[<p>oh sorry, nicht gesehen.<br />
Danke für die Antworten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1209702</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1209702</guid><dc:creator><![CDATA[Norman0406]]></dc:creator><pubDate>Sun, 14 Jan 2007 14:18:11 GMT</pubDate></item></channel></rss>