<?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[const void * const * ?]]></title><description><![CDATA[<p>Hallo allerseits,</p>
<p>Ich verwende eine Funktion eines SDK, welche unter anderem folgende Parameter übergeben haben will:</p>
<blockquote>
<pre><code class="language-cpp">const char * const * ids // [in] Pointer to identifiers array.
const void * const * templates // [in] Pointer to packed Template array.
</code></pre>
</blockquote>
<p>Ich hab meine Templates als BYTE* vorliegen, die identifiers sollen Nummern sein, also 01, 02, 03, etc... . Wie packe meine Daten am besten in das void* const* und char * const * Dingens und das möglichst ohne irgendwelche Speicherlecks zu verursachen? <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="😕"
    /><br />
Danke für die Hilfe.</p>
<p>Schöne Grüsse,<br />
m.g.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/269832/const-void-const</link><generator>RSS for Node</generator><lastBuildDate>Sun, 30 Aug 2026 18:56:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/269832.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 01 Jul 2010 20:55:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to const void * const * ? on Thu, 01 Jul 2010 20:55:31 GMT]]></title><description><![CDATA[<p>Hallo allerseits,</p>
<p>Ich verwende eine Funktion eines SDK, welche unter anderem folgende Parameter übergeben haben will:</p>
<blockquote>
<pre><code class="language-cpp">const char * const * ids // [in] Pointer to identifiers array.
const void * const * templates // [in] Pointer to packed Template array.
</code></pre>
</blockquote>
<p>Ich hab meine Templates als BYTE* vorliegen, die identifiers sollen Nummern sein, also 01, 02, 03, etc... . Wie packe meine Daten am besten in das void* const* und char * const * Dingens und das möglichst ohne irgendwelche Speicherlecks zu verursachen? <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="😕"
    /><br />
Danke für die Hilfe.</p>
<p>Schöne Grüsse,<br />
m.g.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1920150</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1920150</guid><dc:creator><![CDATA[m.g.]]></dc:creator><pubDate>Thu, 01 Jul 2010 20:55:31 GMT</pubDate></item><item><title><![CDATA[Reply to const void * const * ? on Thu, 01 Jul 2010 22:25:43 GMT]]></title><description><![CDATA[<p>Solange du nicht genau weisst, wofür die Parameter stehen und welches Format sie verlangen, kannst du nur spekulieren... Wenn du nicht gerade Glück hast, endet das in undefiniertem Verhalten.</p>
<p>Mich verwirrt ein wenig, dass da Doppelzeiger vorkommen. Sag die Dokumentation oder ein Tutorial nicht mehr aus?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1920180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1920180</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 01 Jul 2010 22:25:43 GMT</pubDate></item><item><title><![CDATA[Reply to const void * const * ? on Fri, 02 Jul 2010 01:21:44 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Mich verwirrt ein wenig, dass da Doppelzeiger vorkommen.</p>
</blockquote>
<p>Vermutlich, weil 2 dimensionale Arrays vorkommen und man den Nutzer nicht zwingen wollte, die am Stück gespeichert zu haben... Aber da kann man ohne die implementierung zu kennen oder zumindest die doku gesehen zu haben nur raten...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1920218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1920218</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Fri, 02 Jul 2010 01:21:44 GMT</pubDate></item><item><title><![CDATA[Reply to const void * const * ? on Fri, 02 Jul 2010 07:39:55 GMT]]></title><description><![CDATA[<p>Hier ist das ganz gut erklärt:<br />
<a href="http://paprots.com/red-inferno/cplusplus/basic/Pointer/main.htm" rel="nofollow">http://paprots.com/red-inferno/cplusplus/basic/Pointer/main.htm</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1920268</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1920268</guid><dc:creator><![CDATA[trooper]]></dc:creator><pubDate>Fri, 02 Jul 2010 07:39:55 GMT</pubDate></item><item><title><![CDATA[Reply to const void * const * ? on Mon, 05 Jul 2010 15:05:43 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Mehr als das Zitat oben steht leider nicht in der Doku, aber ich weiss, wofür die Parameter stehen.</p>
<p>Beispiel aus meinem Code:</p>
<pre><code class="language-cpp">char ids[][3] = {&quot;01&quot;, &quot;02&quot;, &quot;03&quot;, &quot;04&quot;};
	char *pids = (char*)ids;
	char * const * ppids = &amp;pids;
</code></pre>
<p>Das Beispiel funktioniert aber leider nicht wie es soll. Es wird nur der erste Eintrag in ppids gespeichert.</p>
<p>In das void * const * sollen BYTE Arrays unterschiedlicher Länge, die als BYTE* vorliegen. Ich hab leider nicht wirklich eine Ahnung, wie ich das korrekt initialisiere.</p>
<p>Danke für dir bisherige Hilfe und schöne Grüsse,<br />
m.g.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921720</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921720</guid><dc:creator><![CDATA[m.g.]]></dc:creator><pubDate>Mon, 05 Jul 2010 15:05:43 GMT</pubDate></item><item><title><![CDATA[Reply to const void * const * ? on Mon, 05 Jul 2010 15:13:07 GMT]]></title><description><![CDATA[<p>m.g. schrieb:</p>
<blockquote>
<p>Das Beispiel funktioniert aber leider nicht wie es soll.</p>
</blockquote>
<p>Wer hätte das gedacht. Sonst klappt es doch immer, wenn ich Casts zum Beheben von Fehlermeldungen einsetze. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Im Ernst: Wahrscheinlich müsstest du dein Array dynamisch anlegen. So hättest du einen Zeiger auf einen Zeiger auf <code>char</code> . So als Anregung:</p>
<pre><code class="language-cpp">char** outer = new char*[num_strings];
for (...)
   outer[i] = new char[num_chars];
// freigeben nicht vergessen
</code></pre>
<p>Ich würde mir so eine üble Schnittstelle aber so schnell wie möglich sauber kapseln, um Fehler bei der Verwendung einzudämmen. Ist das eigentlich eine C- oder C++-Bibliothek?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921727</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921727</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 05 Jul 2010 15:13:07 GMT</pubDate></item><item><title><![CDATA[Reply to const void * const * ? on Mon, 05 Jul 2010 16:06:00 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ja, danke für die Hilfe. Werde es so machen. Hab allerdings immer noch keinen Schimmer wie ich das mit dem Void lösen soll. So ist es ja wohl nicht richtig.</p>
<pre><code class="language-cpp">BYTE* bin_template = base64_decode(test_data, buf_size);
void **templates = new void*[1];
templates[0] = bin_template;
</code></pre>
<p>Die ganze Aktion dient dazu die Funktion benuzerfreundlich zu kapseln. Bin also schon dabei. Das Handbuch zu dem SKD sagt übrigens folgendes: C/C++ Reference. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Schöne Grüsse,<br />
m.g.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921755</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921755</guid><dc:creator><![CDATA[m.g.]]></dc:creator><pubDate>Mon, 05 Jul 2010 16:06:00 GMT</pubDate></item></channel></rss>