<?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 an Funktion mit variabler Argumentenliste übergeben]]></title><description><![CDATA[<p>Hallo!</p>
<p>Kann ich einer Funktion mit variabler Argumentenliste (z.B. <code>void foo(int a, ...)</code> ) irgrandwie ein Array mit Integern übergeben?</p>
<p>Vielen Dank im Voraus!<br />
Evoli</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/319158/array-an-funktion-mit-variabler-argumentenliste-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Jul 2026 10:10:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/319158.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 08 Aug 2013 17:16:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array an Funktion mit variabler Argumentenliste übergeben on Thu, 08 Aug 2013 17:16:17 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Kann ich einer Funktion mit variabler Argumentenliste (z.B. <code>void foo(int a, ...)</code> ) irgrandwie ein Array mit Integern übergeben?</p>
<p>Vielen Dank im Voraus!<br />
Evoli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344505</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344505</guid><dc:creator><![CDATA[Evoli]]></dc:creator><pubDate>Thu, 08 Aug 2013 17:16:17 GMT</pubDate></item><item><title><![CDATA[Reply to Array an Funktion mit variabler Argumentenliste übergeben on Thu, 08 Aug 2013 17:19:51 GMT]]></title><description><![CDATA[<p>Denk mal nach, was du mit Zeigern machen kannst <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344506</guid><dc:creator><![CDATA[taulinator]]></dc:creator><pubDate>Thu, 08 Aug 2013 17:19:51 GMT</pubDate></item><item><title><![CDATA[Reply to Array an Funktion mit variabler Argumentenliste übergeben on Thu, 08 Aug 2013 17:21:46 GMT]]></title><description><![CDATA[<p>schau mal an, wie vprintf gemacht ist. Den Trick kannst du verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344507</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344507</guid><dc:creator><![CDATA[strichwort]]></dc:creator><pubDate>Thu, 08 Aug 2013 17:21:46 GMT</pubDate></item><item><title><![CDATA[Reply to Array an Funktion mit variabler Argumentenliste übergeben on Thu, 08 Aug 2013 17:35:01 GMT]]></title><description><![CDATA[<p>taulinator schrieb:</p>
<blockquote>
<p>Denk mal nach, was du mit Zeigern machen kannst <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="😉"
    /></p>
</blockquote>
<p>Was denn so? Wenn ich ihn dereferenziere funktioniert es jedenfalls nicht.</p>
<p>strichwort schrieb:</p>
<blockquote>
<p>schau mal an, wie vprintf gemacht ist. Den Trick kannst du verwenden.</p>
</blockquote>
<p>Der da wäre? Die vprintf Implementationen, die ich kenne, benutzen intern jedenfalls nicht printf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344513</guid><dc:creator><![CDATA[Evoli]]></dc:creator><pubDate>Thu, 08 Aug 2013 17:35:01 GMT</pubDate></item><item><title><![CDATA[Reply to Array an Funktion mit variabler Argumentenliste übergeben on Thu, 08 Aug 2013 18:17:02 GMT]]></title><description><![CDATA[<pre><code>void foo(int a, ...);
int ia[] = {1, 2, 3, 4, 5};
foo(2, ia);
</code></pre>
<p>Ich verstehe dein Problem nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344521</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344521</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Thu, 08 Aug 2013 18:17:02 GMT</pubDate></item><item><title><![CDATA[Reply to Array an Funktion mit variabler Argumentenliste übergeben on Thu, 08 Aug 2013 18:23:14 GMT]]></title><description><![CDATA[<p>nwp3 schrieb:</p>
<blockquote>
<pre><code>void foo(int a, ...);
int ia[] = {1, 2, 3, 4, 5};
foo(2, ia);
</code></pre>
<p>Ich verstehe dein Problem nicht.</p>
</blockquote>
<p>Er redet von einer variablen Anzahl an Argumenten, wobei er sich auf der C-Schiene bewegt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344523</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344523</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Thu, 08 Aug 2013 18:23:14 GMT</pubDate></item><item><title><![CDATA[Reply to Array an Funktion mit variabler Argumentenliste übergeben on Thu, 08 Aug 2013 18:31:55 GMT]]></title><description><![CDATA[<p>nwp3 schrieb:</p>
<blockquote>
<pre><code>void foo(int a, ...);
int ia[] = {1, 2, 3, 4, 5};
foo(2, ia);
</code></pre>
<p>Ich verstehe dein Problem nicht.</p>
</blockquote>
<p>Bei mir funtioniert das nicht:</p>
<pre><code class="language-cpp">#include &lt;cstdarg&gt;
#include &lt;iostream&gt;
using namespace std;

void foo(int count, ...)
{
  va_list list;
  va_start(list, count);
  for(int c = 0; c &lt; count; c++)
    std::cout &lt;&lt; va_arg(list, int) &lt;&lt; &quot; &quot;;
  va_end(list);
 std:cout &lt;&lt; std::endl;

}

int main()
{
  int ints[] = {1, 2, 3, 4};
  foo(4, ints);
  foo(4, 5, 6, 7, 8);
  return 0;
}
</code></pre>
<pre><code>$ g++ tmp.cpp &amp;&amp; ./a.out 
-1157254800 -1157254536 4 -1233998720
5 6 7 8
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2344525</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344525</guid><dc:creator><![CDATA[Evoli]]></dc:creator><pubDate>Thu, 08 Aug 2013 18:31:55 GMT</pubDate></item><item><title><![CDATA[Reply to Array an Funktion mit variabler Argumentenliste übergeben on Thu, 08 Aug 2013 19:08:46 GMT]]></title><description><![CDATA[<p>Ich bin nicht wirklich fitt in <code>variadic templates</code> . Aber ich glaube, das ist das, was du willst?</p>
<pre><code>#include &lt;array&gt;
#include &lt;iostream&gt;
using namespace std;

template&lt;size_t N&gt;
void foo( const array&lt;int,N&gt;&amp; ar )
{
	for(const auto value : ar)
		cout &lt;&lt; value &lt;&lt; &quot; &quot;;
}

template&lt;typename T&gt;
void foo( T value )
{
	cout &lt;&lt; value &lt;&lt; &quot; &quot;;
}

template&lt;typename T, typename... Args&gt;
void foo( T value, Args... args )
{
	cout &lt;&lt; value &lt;&lt; &quot; &quot;;
	foo( args... );
}

int main()
{
	array&lt;int,4&gt; ints = {{5,6,7,8}};

	foo( ints );
	cout &lt;&lt; '\n';
	foo( 5, 6, 7, 8 );
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2344527</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344527</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Thu, 08 Aug 2013 19:08:46 GMT</pubDate></item><item><title><![CDATA[Reply to Array an Funktion mit variabler Argumentenliste übergeben on Thu, 08 Aug 2013 19:23:18 GMT]]></title><description><![CDATA[<p>Das Problem ist, dass die variadic function nicht von mir geschrieben, sondern Teil einer Bibliothek ist ( <code>wl_proxy_marshal</code> in libwayland um genau zu sein). Daher kann ich diese nicht verändern. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344529</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344529</guid><dc:creator><![CDATA[Evoli]]></dc:creator><pubDate>Thu, 08 Aug 2013 19:23:18 GMT</pubDate></item><item><title><![CDATA[Reply to Array an Funktion mit variabler Argumentenliste übergeben on Thu, 08 Aug 2013 19:49:02 GMT]]></title><description><![CDATA[<p>Sieh dir mal das hier an, erster Treffer beim Suchen von &quot;C variadic function&quot;:<br />
<a href="http://www.gnu.org/software/libc/manual/html_node/Variadic-Example.html#Variadic-Example" rel="nofollow">http://www.gnu.org/software/libc/manual/html_node/Variadic-Example.html#Variadic-Example</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344535</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344535</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Thu, 08 Aug 2013 19:49:02 GMT</pubDate></item><item><title><![CDATA[Reply to Array an Funktion mit variabler Argumentenliste übergeben on Thu, 08 Aug 2013 20:12:31 GMT]]></title><description><![CDATA[<p>Evoli schrieb:</p>
<blockquote>
<p>Kann ich einer Funktion mit variabler Argumentenliste (z.B. <code>void foo(int a, ...)</code> ) irgrandwie ein Array mit Integern übergeben?</p>
</blockquote>
<p>Ja. Kann man.<br />
Dann werden aber auch nur 2 Argumente übergeben/ausgewertet, und <strong>nicht</strong> die Elemente des 2. Arguments (Array) <strong>einzeln</strong> als int, was du wohl erreichen möchtest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344539</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344539</guid><dc:creator><![CDATA[Wutz]]></dc:creator><pubDate>Thu, 08 Aug 2013 20:12:31 GMT</pubDate></item><item><title><![CDATA[Reply to Array an Funktion mit variabler Argumentenliste übergeben on Thu, 08 Aug 2013 20:15:07 GMT]]></title><description><![CDATA[<p>nwp3 schrieb:</p>
<blockquote>
<p>Sieh dir mal das hier an, erster Treffer beim Suchen von &quot;C variadic function&quot;:<br />
<a href="http://www.gnu.org/software/libc/manual/html_node/Variadic-Example.html#Variadic-Example" rel="nofollow">http://www.gnu.org/software/libc/manual/html_node/Variadic-Example.html#Variadic-Example</a></p>
</blockquote>
<p>Ich sehe dort keine variadic function, der ein array übergeben wird. Lediglich ein gewöhnlicher veriadic function call...</p>
<p>Wutz schrieb:</p>
<blockquote>
<p>Evoli schrieb:</p>
<blockquote>
<p>Kann ich einer Funktion mit variabler Argumentenliste (z.B. <code>void foo(int a, ...)</code> ) irgrandwie ein Array mit Integern übergeben?</p>
</blockquote>
<p>Ja. Kann man.<br />
Dann werden aber auch nur 2 Argumente übergeben/ausgewertet, und <strong>nicht</strong> die Elemente des 2. Arguments (Array) <strong>einzeln</strong> als int, was du wohl erreichen möchtest.</p>
</blockquote>
<p>Schade. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344541</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344541</guid><dc:creator><![CDATA[Evoli]]></dc:creator><pubDate>Thu, 08 Aug 2013 20:15:07 GMT</pubDate></item><item><title><![CDATA[Reply to Array an Funktion mit variabler Argumentenliste übergeben on Thu, 08 Aug 2013 20:27:19 GMT]]></title><description><![CDATA[<p>Folgendes sollte so ziemlich auf jeder Plattform gehen:</p>
<pre><code class="language-cpp">void foo(int count, ...)
{
  va_list list;
  va_start(list, count);
  for(int c = 0; c &lt; count; c++)
    std::cout &lt;&lt; va_arg(list, int) &lt;&lt; &quot; &quot;;
  va_end(list);
  std::cout &lt;&lt; std::endl; 
}

struct std_array {
  int ints[4]; // 4 oder eine beliebige andere Zahl. Muss aber konstant sein
};

int main()
{
  int ints[] = {1, 2, 3, 4};
  std_array s; std::memcpy(static_cast&lt;void*&gt;(&amp;s),ints,sizeof(s));
  foo(4, s);
  foo(4, 5, 6, 7, 8);
  return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2344542</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344542</guid><dc:creator><![CDATA[hntqegafs]]></dc:creator><pubDate>Thu, 08 Aug 2013 20:27:19 GMT</pubDate></item><item><title><![CDATA[Reply to Array an Funktion mit variabler Argumentenliste übergeben on Sun, 18 Aug 2013 19:04:13 GMT]]></title><description><![CDATA[<p>Sorry erstmal, das ich solange nicht geantwortet habe <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="😃"
    /><br />
Also nach dem neuen C++11, sind variable Parameteranzahlen möglich:<br />
(Der Code ist unordentlich und sollte so nicht verwendet werden, aber er funktioniert <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>
<pre><code>#include &lt;iostream&gt;

template&lt;typename ... T&gt;
void function(int* a, T ... rest)
{
a[2]=100000;

}

int main()
{

    int b[10]={1,2,3,4,5,6,7,8,9,10};
	std::cout &lt;&lt; &quot;Davor:&quot; &lt;&lt; std::endl;
	for(int i = 0; i&lt;10 ;i++)
	{
	std::cout &lt;&lt; b[i] &lt;&lt; std::endl;
	}
	std::cout &lt;&lt; std::endl &lt;&lt; &quot;Danach:&quot; &lt;&lt; std::endl;
	function(b,12,&quot;a&quot;,12.0f);
	for(int i = 0; i&lt;10 ;i++)
	{
	std::cout &lt;&lt; b[i] &lt;&lt; std::endl;
	}
	std::cin.get();

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2346895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2346895</guid><dc:creator><![CDATA[taulinator]]></dc:creator><pubDate>Sun, 18 Aug 2013 19:04:13 GMT</pubDate></item><item><title><![CDATA[Reply to Array an Funktion mit variabler Argumentenliste übergeben on Sun, 18 Aug 2013 19:41:44 GMT]]></title><description><![CDATA[<p>hntqegafs schrieb:</p>
<blockquote>
<p>Folgendes sollte so ziemlich auf jeder Plattform gehen:<br />
(...)</p>
</blockquote>
<p>Bei mir kommt da</p>
<pre><code>$ ./a.out 
1 3 4197020 -1211368256 
5 6 7 8
</code></pre>
<p>raus. Gcc 4.8, Linux x86-64.</p>
<p>Folgendes ginge:</p>
<pre><code class="language-cpp">#include &lt;cstdarg&gt;
#include &lt;type_traits&gt;
#include &lt;functional&gt;
#include &lt;iostream&gt;

void foo(int count, ...)
{
  va_list list;
  va_start(list, count);
  for(int c = 0; c &lt; count; c++)
    std::cout &lt;&lt; va_arg(list, int) &lt;&lt; &quot; &quot;;
  va_end(list);
  std::cout &lt;&lt; std::endl;
}

// std::result_of kann mit variadischen Funktionen leider nicht umgehen, also
// muss man das einmal selbst machen.
template&lt;typename F&gt; struct variadic_result_of;
template&lt;typename R, typename... Args&gt; struct variadic_result_of&lt;R(Args..., ...)&gt; {
  typedef R type;
};

template&lt;typename R, typename... Args&gt; struct variadic_result_of&lt;R(*)(Args..., ...)&gt; {
  typedef R type;
};

// Funktionsaufruf zusammensetzen.
template&lt;std::size_t N&gt; struct variadic_call_helper {
  template&lt;typename F, typename T, typename... Args&gt;
  static typename variadic_result_of&lt;F&gt;::type call(F func, T *data, Args&amp;&amp;... args) {
    return variadic_call_helper&lt;N - 1&gt;::call(func, data + 1, args..., *data);
  }
};

// Wenn fertig: aufrufen.
template&lt;&gt; struct variadic_call_helper&lt;0&gt; {
  template&lt;typename F, typename T, typename... Args&gt;
  static typename variadic_result_of&lt;F&gt;::type call(F func, T*, Args&amp;&amp;... args) {
    return func(args...);
  }
};

template&lt;typename F, typename T, std::size_t N, typename... Args&gt;
typename variadic_result_of&lt;F&gt;::type call_variadic_function(F func, T (&amp;arr)[N], Args&amp;&amp;... args) {
  return variadic_call_helper&lt;N&gt;::call(func, arr, std::forward&lt;Args&gt;(args)...);
}

int main()
{
  int ints[] = {1, 2, 3, 4};
  // Aufruf etwas verdreht; alle Parameter nach ints werden im Aufruf von
  // foo vor den Arrayinhalt gestellt. Das geht nur anders, wenn die zusätzliche
  // Parameterzahl vorher bekannt und immer gleich ist.
  call_variadic_function(foo, ints, 4);
  foo(4, 5, 6, 7, 8);
  return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2346909</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2346909</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Sun, 18 Aug 2013 19:41:44 GMT</pubDate></item><item><title><![CDATA[Reply to Array an Funktion mit variabler Argumentenliste übergeben on Mon, 19 Aug 2013 11:17:03 GMT]]></title><description><![CDATA[<p>mit va_list und co...</p>
<pre><code>void foo(bool arr, int count, ...) 
{ 
  va_list list; 

  va_start(list, count); 
  if (arr)
  {
	int* array = (int*)va_arg(list, int); // auf dem stack steht die Adresse des arrays
	for(int c = 0; c &lt; count; c++) 
		std::cout &lt;&lt; array [c] &lt;&lt; &quot; &quot;; 
  }
  else
  {
	  for(int c = 0; c &lt; count; c++) 
		std::cout &lt;&lt;va_arg(list, int) &lt;&lt; &quot; &quot;; 
  }
  va_end(list); 
  std::cout &lt;&lt; std::endl; 

} 

int main() 
{ 
  int ints[] = {1, 2, 3, 4}; 
  foo(true, 4, ints); 
  foo(false, 4, 5, 6, 7, 8); 
  return 0; 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2347007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2347007</guid><dc:creator><![CDATA[Tobias Gerg]]></dc:creator><pubDate>Mon, 19 Aug 2013 11:17:03 GMT</pubDate></item><item><title><![CDATA[Reply to Array an Funktion mit variabler Argumentenliste übergeben on Mon, 19 Aug 2013 21:58:28 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/34826">@Tobias</a> Gerg<br />
Er will die Varargs-Funktion aufrufen, nicht eine implementieren.<br />
Und zwar so, als ob die Parameter alle direkt übergeben werden, NICHT so als ob ein zu einem Zeiger zerfallenes Array übergeben wurde.</p>
<p>Da wird ihm <code>va_list</code> etc. wenig nutzen. Behaupte ich mal so <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2347122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2347122</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 19 Aug 2013 21:58:28 GMT</pubDate></item><item><title><![CDATA[Reply to Array an Funktion mit variabler Argumentenliste übergeben on Tue, 20 Aug 2013 08:20:30 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/34826">@Tobias</a> Gerg<br />
Er will die Varargs-Funktion aufrufen, nicht eine implementieren.<br />
Und zwar so, als ob die Parameter alle direkt übergeben werden, NICHT so als ob ein zu einem Zeiger zerfallenes Array übergeben wurde.</p>
<p>Da wird ihm <code>va_list</code> etc. wenig nutzen. Behaupte ich mal so <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
</blockquote>
<p>Mag sein, ich bezog mich auf den unten genannten Code...</p>
<p>Evoli schrieb:</p>
<blockquote>
<p>nwp3 schrieb:</p>
<blockquote>
<pre><code>void foo(int a, ...);
int ia[] = {1, 2, 3, 4, 5};
foo(2, ia);
</code></pre>
<p>Ich verstehe dein Problem nicht.</p>
</blockquote>
<p>Bei mir funtioniert das nicht:</p>
<pre><code class="language-cpp">#include &lt;cstdarg&gt;
#include &lt;iostream&gt;
using namespace std;

void foo(int count, ...)
{
  va_list list;
  va_start(list, count);
  for(int c = 0; c &lt; count; c++)
    std::cout &lt;&lt; va_arg(list, int) &lt;&lt; &quot; &quot;;
  va_end(list);
 std:cout &lt;&lt; std::endl;

}

int main()
{
  int ints[] = {1, 2, 3, 4};
  foo(4, ints);
  foo(4, 5, 6, 7, 8);
  return 0;
}
</code></pre>
<pre><code>$ g++ tmp.cpp &amp;&amp; ./a.out 
-1157254800 -1157254536 4 -1233998720
5 6 7 8
</code></pre>
</blockquote>
<p>_____________________________________________________</p>
<p>Ahhhh ... beim durchlesen habe ich wohl den</p>
<blockquote>
<p>Das Problem ist, dass die variadic function nicht von mir geschrieben, sondern Teil einer Bibliothek ist (wl_proxy_marshal in libwayland um genau zu sein). Daher kann ich diese nicht verändern.</p>
</blockquote>
<p>übersehen ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2347153</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2347153</guid><dc:creator><![CDATA[Tobias Gerg]]></dc:creator><pubDate>Tue, 20 Aug 2013 08:20:30 GMT</pubDate></item></channel></rss>