<?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[Array als Kopie an Funktion übergeben]]></title><description><![CDATA[<p>Hallo</p>
<p>In einem Integer Array sind Adressen von Variablen gespeichert:</p>
<pre><code>unsigned int zeigerarray[laenge];
zeigerarray[0] = (unsigned int) &amp;var1;
zeigerarray[1] = (unsigned int) &amp;var2;
....
</code></pre>
<p>Dieses Array möchte ich nun als <strong>Kopie</strong> an die Funktion<br />
sscanf (zeichenfolge, formatzeichenfolge, zeigerarray)<br />
übergeben.</p>
<p>Wie kann ich ein Array (Bytefolge) einer Funktion als Kopie (auf dem Stack?!?) übergeben?</p>
<p>Da sich die Länge des Arrays erst zur Laufzeit berechnet, kann man dieses Array (- nach meinem Wissen -) auch nicht in ein Struct verpacken. Oder ?!?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/297467/array-als-kopie-an-funktion-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 10:15:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/297467.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 29 Dec 2011 16:28:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array als Kopie an Funktion übergeben on Thu, 29 Dec 2011 16:28:36 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>In einem Integer Array sind Adressen von Variablen gespeichert:</p>
<pre><code>unsigned int zeigerarray[laenge];
zeigerarray[0] = (unsigned int) &amp;var1;
zeigerarray[1] = (unsigned int) &amp;var2;
....
</code></pre>
<p>Dieses Array möchte ich nun als <strong>Kopie</strong> an die Funktion<br />
sscanf (zeichenfolge, formatzeichenfolge, zeigerarray)<br />
übergeben.</p>
<p>Wie kann ich ein Array (Bytefolge) einer Funktion als Kopie (auf dem Stack?!?) übergeben?</p>
<p>Da sich die Länge des Arrays erst zur Laufzeit berechnet, kann man dieses Array (- nach meinem Wissen -) auch nicht in ein Struct verpacken. Oder ?!?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161871</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161871</guid><dc:creator><![CDATA[Squicky]]></dc:creator><pubDate>Thu, 29 Dec 2011 16:28:36 GMT</pubDate></item><item><title><![CDATA[Reply to Array als Kopie an Funktion übergeben on Thu, 29 Dec 2011 16:34:40 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;vector&gt;

void foo(const std::vector&lt;void*&gt;&amp; zeiger_array)
{
  /* ... */
}

int main()
{
  std::vector&lt;void*&gt; zeiger_array;
  zeiger_array.push_back(static_cast&lt;void*&gt;(&amp;var1);
  zeiger_array.push_back(static_cast&lt;void*&gt;(&amp;var2);
  zeiger_array.push_back(static_cast&lt;void*&gt;(&amp;var3);
  zeiger_array.push_back(static_cast&lt;void*&gt;(&amp;var4);
  zeiger_array.push_back(static_cast&lt;void*&gt;(&amp;var5);
}
</code></pre>
<p>und: doch, geht.</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161876</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 29 Dec 2011 16:34:40 GMT</pubDate></item><item><title><![CDATA[Reply to Array als Kopie an Funktion übergeben on Thu, 29 Dec 2011 16:34:36 GMT]]></title><description><![CDATA[<p>Benutz std::vector<br />
<a href="http://www.cplusplus.com/reference/stl/vector/" rel="nofollow">http://www.cplusplus.com/reference/stl/vector/</a></p>
<p>oder std::array (C++11), die tr1 Implementierung oder das von Boost.</p>
<p>Ansonsten musst du da selbst mit new hantieren und eine Kopie anlegen etc.<br />
Auf dem Stack geht das i.A nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161877</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161877</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 29 Dec 2011 16:34:36 GMT</pubDate></item><item><title><![CDATA[Reply to Array als Kopie an Funktion übergeben on Thu, 29 Dec 2011 16:42:10 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<pre><code class="language-cpp">#include &lt;vector&gt;

void foo(const std::vector&lt;void*&gt;&amp; zeiger_array)
{
  /* ... */
}

int main()
{
  std::vector&lt;void*&gt; zeiger_array;
  zeiger_array.push_back(static_cast&lt;void*&gt;(&amp;var1);
  zeiger_array.push_back(static_cast&lt;void*&gt;(&amp;var2);
  zeiger_array.push_back(static_cast&lt;void*&gt;(&amp;var3);
  zeiger_array.push_back(static_cast&lt;void*&gt;(&amp;var4);
  zeiger_array.push_back(static_cast&lt;void*&gt;(&amp;var5);
}
</code></pre>
<p>und: doch, geht.</p>
<p>bb</p>
</blockquote>
<p>iii, void Zeiger</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161879</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161879</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 29 Dec 2011 16:42:10 GMT</pubDate></item><item><title><![CDATA[Reply to Array als Kopie an Funktion übergeben on Thu, 29 Dec 2011 16:49:09 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<pre><code class="language-cpp">...
</code></pre>
<p>und: doch, geht.</p>
<p>bb</p>
</blockquote>
<p>Die static_casts sind unnötig und hässlich.</p>
<p>Hacker schrieb:</p>
<blockquote>
<p>iii, void Zeiger</p>
</blockquote>
<p>iii, ein Hacker</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161883</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161883</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Thu, 29 Dec 2011 16:49:09 GMT</pubDate></item><item><title><![CDATA[Reply to Array als Kopie an Funktion übergeben on Thu, 29 Dec 2011 16:54:45 GMT]]></title><description><![CDATA[<p>Squicky schrieb:</p>
<blockquote>
<p>Dieses Array möchte ich nun als <strong>Kopie</strong> an die Funktion<br />
sscanf (zeichenfolge, formatzeichenfolge, zeigerarray)<br />
übergeben.</p>
</blockquote>
<p>Wie und warum?</p>
<p>Squicky schrieb:</p>
<blockquote>
<p>Wie kann ich ein Array (Bytefolge) einer Funktion als Kopie (auf dem Stack?!?) übergeben?</p>
</blockquote>
<p>Überhaupt nicht. <code>sscanf</code> gibt das nicht her.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161888</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161888</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Thu, 29 Dec 2011 16:54:45 GMT</pubDate></item><item><title><![CDATA[Reply to Array als Kopie an Funktion übergeben on Thu, 29 Dec 2011 17:09:34 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>unskilled schrieb:</p>
<blockquote>
<pre><code class="language-cpp">...
</code></pre>
<p>und: doch, geht.</p>
<p>bb</p>
</blockquote>
<p>Die static_casts sind unnötig und hässlich.</p>
<p>Hacker schrieb:</p>
<blockquote>
<p>iii, void Zeiger</p>
</blockquote>
<p>iii, ein Hacker</p>
</blockquote>
<p>Iii, eine Transzendente Zahl</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161897</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161897</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 29 Dec 2011 17:09:34 GMT</pubDate></item><item><title><![CDATA[Reply to Array als Kopie an Funktion übergeben on Thu, 29 Dec 2011 17:15:36 GMT]]></title><description><![CDATA[<p>Ein bisschen Bi schadet nie. gnihihi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161898</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161898</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Thu, 29 Dec 2011 17:15:36 GMT</pubDate></item><item><title><![CDATA[Reply to Array als Kopie an Funktion übergeben on Thu, 29 Dec 2011 17:16:57 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Ein bisschen Bi schadet nie. gnihihi</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161900</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161900</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 29 Dec 2011 17:16:57 GMT</pubDate></item><item><title><![CDATA[Reply to Array als Kopie an Funktion übergeben on Thu, 29 Dec 2011 18:39:55 GMT]]></title><description><![CDATA[<p>Zum Teil ja.<br />
Dies funktioniert.</p>
<pre><code>struct int2 {
    unsigned int a[2];
};

int main() {
    char txt[] = &quot;abc 13 abc 25&quot;;
    char format[] = &quot;abc %d %*s %d&quot;;
    int a, b;
    a = 0;
    b = 0;

    struct int2 ar_int2;
    ar_int2.a[0] = (unsigned int) &amp;a;
    ar_int2.a[1] = (unsigned int) &amp;b;

    int ret = sscanf(txt, format, ar_int2);

    cout &lt;&lt; &quot;ret: &quot; &lt;&lt; ret &lt;&lt; &quot; | &quot; &lt;&lt; a &lt;&lt; &quot; | &quot; &lt;&lt; b &lt;&lt; endl;

    return 0;
}
</code></pre>
<p>Aber diese Lösung arbeitet leider mit einer <strong>festen</strong> Arraylänge (2), und deshalb meine Anfrage.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161924</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161924</guid><dc:creator><![CDATA[Squicky]]></dc:creator><pubDate>Thu, 29 Dec 2011 18:39:55 GMT</pubDate></item><item><title><![CDATA[Reply to Array als Kopie an Funktion übergeben on Thu, 29 Dec 2011 19:05:33 GMT]]></title><description><![CDATA[<p>benutz C++, und nicht C. und vor allem (!!!) misch es nicht (sscanf &lt;--&gt; cout)</p>
<p>und zu C++ gehört wie schon genannt vector, string, array oder was ähnliches. nachzulesen in jeden halbwegs guten buch oder auf refenrenz seiten zu der STL</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161938</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Thu, 29 Dec 2011 19:05:33 GMT</pubDate></item><item><title><![CDATA[Reply to Array als Kopie an Funktion übergeben on Thu, 29 Dec 2011 19:08:46 GMT]]></title><description><![CDATA[<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>benutz C++, und nicht C. und vor allem (!!!) misch es nicht (sscanf &lt;--&gt; cout)</p>
<p>und zu C++ gehört wie schon genannt vector, string, array oder was ähnliches. nachzulesen in jeden halbwegs guten buch oder auf refenrenz seiten zu der STL</p>
</blockquote>
<p>Sag statt &quot;vector, string, array oder was ähnliches&quot; lieber Container (oder STL).<br />
Was hat sscanf bitte mit cout zu tun?<br />
Im letzten Punkt hast du natürlich(!) Recht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161942</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 29 Dec 2011 19:08:46 GMT</pubDate></item><item><title><![CDATA[Reply to Array als Kopie an Funktion übergeben on Thu, 29 Dec 2011 19:10:46 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">struct int2 {
    unsigned int a[2];
};

int main() {
    char txt[] = &quot;abc 13 abc 25&quot;;
    char format[] = &quot;abc %d %*s %d&quot;;
    int a, b;
    a = 0;
    b = 0;

    struct int2 ar_int2;
    ar_int2.a[0] = (unsigned int) &amp;a;
    ar_int2.a[1] = (unsigned int) &amp;b;

    int ret = sscanf(txt, format, ar_int2);

    cout &lt;&lt; &quot;ret: &quot; &lt;&lt; ret &lt;&lt; &quot; | &quot; &lt;&lt; a &lt;&lt; &quot; | &quot; &lt;&lt; b &lt;&lt; endl;

    return 0;
}
</code></pre>
<p>Iiiii!!!!!<br />
Schöner kommt gleich. :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161943</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161943</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 29 Dec 2011 19:10:46 GMT</pubDate></item></channel></rss>