<?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[Pointer auf Pointer von Array mit Werten des Types BYTE]]></title><description><![CDATA[<p>Hallo alle miteinander,</p>
<p>folgendes Problem ich will einer Funktion einen Pointer übergeben und diesen Pointer wird in der Funktion ein Pointer auf ein Dynamische erzeugtes Array vom Typ BYTE übergeben. Nun ist die Frage, wie initialisiere ich die Pointer und wie sieht die übergabe aus? Ist das überhaupt möglich oder sollte man das anders machen.<br />
Hier mein Lösungsansatz.</p>
<pre><code class="language-cpp">int func(BYTE ???)
{
  // hier wird der Pointer vom Dynamisch erzeugten Array übergeben.
  // 
  return 0;
} 

// Aufrufende Funktion
...
BYTE (**ppa)[]; // Pointer auf Pointer auf Array von BYTE Werten
// wie muß ich ppa initialisieren
func(???);

// Zugriff auf die BYTES im Array
...
</code></pre>
<p>Danke im voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/136432/pointer-auf-pointer-von-array-mit-werten-des-types-byte</link><generator>RSS for Node</generator><lastBuildDate>Sun, 05 Apr 2026 09:35:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/136432.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 10 Feb 2006 08:18:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Pointer auf Pointer von Array mit Werten des Types BYTE on Fri, 10 Feb 2006 08:18:39 GMT]]></title><description><![CDATA[<p>Hallo alle miteinander,</p>
<p>folgendes Problem ich will einer Funktion einen Pointer übergeben und diesen Pointer wird in der Funktion ein Pointer auf ein Dynamische erzeugtes Array vom Typ BYTE übergeben. Nun ist die Frage, wie initialisiere ich die Pointer und wie sieht die übergabe aus? Ist das überhaupt möglich oder sollte man das anders machen.<br />
Hier mein Lösungsansatz.</p>
<pre><code class="language-cpp">int func(BYTE ???)
{
  // hier wird der Pointer vom Dynamisch erzeugten Array übergeben.
  // 
  return 0;
} 

// Aufrufende Funktion
...
BYTE (**ppa)[]; // Pointer auf Pointer auf Array von BYTE Werten
// wie muß ich ppa initialisieren
func(???);

// Zugriff auf die BYTES im Array
...
</code></pre>
<p>Danke im voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/990630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/990630</guid><dc:creator><![CDATA[e*mc*]]></dc:creator><pubDate>Fri, 10 Feb 2006 08:18:39 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf Pointer von Array mit Werten des Types BYTE on Fri, 10 Feb 2006 09:15:13 GMT]]></title><description><![CDATA[<p>Mal langsam - deine Funktion erzeugt ein Array von BYTE-Werten und will sie nach außen übergeben, richtig?</p>
<pre><code class="language-cpp">int func(BYTE*&amp; target, int count)
{
  target=new BYTE[count];
  return 0;
}

int main()
{
  BYTE* arr;
  func(arr,100);
  ...
}
</code></pre>
<p>(btw, dein 'ppa', wie du es deklariert hast, ist ein Array (unbestimmter Größe) von BYTE**-Werten - das sollte nicht einmal am Compiler vorbeikommen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/990674</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/990674</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Fri, 10 Feb 2006 09:15:13 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf Pointer von Array mit Werten des Types BYTE on Fri, 10 Feb 2006 09:47:37 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>danke für deine Antwort, das ist das was ich gesucht habe.<br />
Habe aber noch eine Frage.<br />
Ich möchte gerne die Größe des Erzeugten Arrays bestimmen, leider funktioniert das nicht so wie ich das möchte.</p>
<pre><code class="language-cpp">int nValue = (sizeof(byBuffer) / sizeof(byBuffer[0])); // ist 4
</code></pre>
<p>Müßte ja, wenn man deinen Code nimmt, 100 sein.<br />
Oder bekommt man nur die Anzahl Bytes, die ein Pointer hat?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/990697</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/990697</guid><dc:creator><![CDATA[e*mc*]]></dc:creator><pubDate>Fri, 10 Feb 2006 09:47:37 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf Pointer von Array mit Werten des Types BYTE on Fri, 10 Feb 2006 09:50:39 GMT]]></title><description><![CDATA[<p>Garnicht. Sobald der Compiler nur noch von einem Pointer (oder dimensionslosem Array) weiss ist das Ding 4 Byte groß (32-bit), ein Pointer halt.</p>
<p>Sizeof zur Längenbestimmung geht nur wenn der Compiler zugriff auf die Dimensionen hat.</p>
<pre><code class="language-cpp">BYTE array[100];
BYTE *pointer = array;

sizeof(array) / sizeof(BYTE) // 100
sizeof(pointer) / sizeof(BYTE) // 4
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/990701</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/990701</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Fri, 10 Feb 2006 09:50:39 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf Pointer von Array mit Werten des Types BYTE on Fri, 10 Feb 2006 09:51:42 GMT]]></title><description><![CDATA[<p>Mit sizeof bekommst du immer nur die Größe des Datentyps, in deinem Fall die eines Byte * und der ist wie du schon gesagt hast 4 Byte groß! Du musst dir also bei der Speicheranforderung mit new selber merken wieviele Elemente du erzeugt hast!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/990702</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/990702</guid><dc:creator><![CDATA[KPC]]></dc:creator><pubDate>Fri, 10 Feb 2006 09:51:42 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf Pointer von Array mit Werten des Types BYTE on Fri, 10 Feb 2006 09:53:44 GMT]]></title><description><![CDATA[<p>Du könntest dich aber auch komplett von der manuellen Speicherverwaltung trennen und stattdessen mit STL-Containern arbeiten - die kümmern sich selber darum, genügend Platz bereitzustellen, und sie können dir sogar sagen, wieviel Platz sie aktuell belegt haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/990704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/990704</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Fri, 10 Feb 2006 09:53:44 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf Pointer von Array mit Werten des Types BYTE on Fri, 10 Feb 2006 09:54:24 GMT]]></title><description><![CDATA[<p>CStoll (off) schrieb:</p>
<blockquote>
<p>(btw, dein 'ppa', wie du es deklariert hast, ist ein Array (unbestimmter Größe) von BYTE**-Werten</p>
</blockquote>
<p>Nein, es erzeugt einen Pointer auf einen Pointer auf ein BYTE-Array unbestimmter Größe. Dass es nicht am Compiler vorbeikommt, stimmt allerdings <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/990706</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/990706</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Fri, 10 Feb 2006 09:54:24 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf Pointer von Array mit Werten des Types BYTE on Fri, 10 Feb 2006 09:55:17 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<p>Garnicht. Sobald der Compiler nur noch von einem Pointer (oder dimensionslosem Array) weiss ist das Ding 4 Byte groß (32-bit), ein Pointer halt.</p>
<p>Sizeof zur Längenbestimmung geht nur wenn der Compiler zugriff auf die Dimensionen hat.</p>
<pre><code class="language-cpp">BYTE array[100];
BYTE *pointer = array;

sizeof(array) / sizeof(BYTE) // 100
sizeof(pointer) / sizeof(BYTE) // 4
</code></pre>
</blockquote>
<p>Dann würde ja</p>
<pre><code class="language-cpp">sizeof(*pointer) / sizeof(BYTE) // 100
</code></pre>
<p>ergeben, oder etwa nicht?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/990707</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/990707</guid><dc:creator><![CDATA[e*mc*]]></dc:creator><pubDate>Fri, 10 Feb 2006 09:55:17 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf Pointer von Array mit Werten des Types BYTE on Fri, 10 Feb 2006 09:56:29 GMT]]></title><description><![CDATA[<p>e=mc² schrieb:</p>
<blockquote>
<p>Dann würde ja</p>
<pre><code class="language-cpp">sizeof(*pointer) / sizeof(BYTE) // 100
</code></pre>
<p>ergeben, oder etwa nicht?!</p>
</blockquote>
<p>*pointer hat den Typ BYTE, also ist obiger Ausdruck 1.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/990708</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/990708</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Fri, 10 Feb 2006 09:56:29 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf Pointer von Array mit Werten des Types BYTE on Fri, 10 Feb 2006 09:57:47 GMT]]></title><description><![CDATA[<p>e=mc² schrieb:</p>
<blockquote>
<p>Dann würde ja</p>
<pre><code class="language-cpp">sizeof(*pointer) / sizeof(BYTE) // 100
</code></pre>
<p>ergeben, oder etwa nicht?!</p>
</blockquote>
<p>Nein, das ergibt 1 (*pointer ist das erste BYTE in deinem Array).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/990709</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/990709</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Fri, 10 Feb 2006 09:57:47 GMT</pubDate></item></channel></rss>