<?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[va_start und Referenzen]]></title><description><![CDATA[<p>Hallo zusammen.</p>
<p>va_start funktioniert nicht korrekt, wenn der übergebene Parameter eine Referenz ist. Wenn ich die Defekte va_list dann mit vprintf verwende, erscheint folgender Fehler: &quot;Unhandled exception at 0x10227c2f (msvcr80d.dll) in Test.exe: 0xC0000005: Access violation reading location 0xcccccccc.&quot;</p>
<p>Demo:</p>
<pre><code class="language-cpp">#include &quot;stdarg.h&quot;
#include &quot;stdio.h&quot;

void Test (int&amp; iTest, ...)
{
	va_list va;
	va_start (va, iTest);
	vprintf (&quot;%s&quot;, va); // sollte &quot;test&quot; ausgeben
	va_end (va);
}

int main
	(int argc, char* argv[])
{
	int iTest = 0;
	Test (iTest, &quot;test&quot;);

	return 0;
}
</code></pre>
<p>Ich vermute mal, dass es sich um einen Bug in Visual C++ 2005 handelt. Sollte jemand einen Workaround kennen, dann imemr her damit <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>
<p>Grüße,<br />
Neku</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/151117/va_start-und-referenzen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 06 Sep 2026 08:37:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/151117.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 23 Jun 2006 09:21:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to va_start und Referenzen on Fri, 23 Jun 2006 09:21:10 GMT]]></title><description><![CDATA[<p>Hallo zusammen.</p>
<p>va_start funktioniert nicht korrekt, wenn der übergebene Parameter eine Referenz ist. Wenn ich die Defekte va_list dann mit vprintf verwende, erscheint folgender Fehler: &quot;Unhandled exception at 0x10227c2f (msvcr80d.dll) in Test.exe: 0xC0000005: Access violation reading location 0xcccccccc.&quot;</p>
<p>Demo:</p>
<pre><code class="language-cpp">#include &quot;stdarg.h&quot;
#include &quot;stdio.h&quot;

void Test (int&amp; iTest, ...)
{
	va_list va;
	va_start (va, iTest);
	vprintf (&quot;%s&quot;, va); // sollte &quot;test&quot; ausgeben
	va_end (va);
}

int main
	(int argc, char* argv[])
{
	int iTest = 0;
	Test (iTest, &quot;test&quot;);

	return 0;
}
</code></pre>
<p>Ich vermute mal, dass es sich um einen Bug in Visual C++ 2005 handelt. Sollte jemand einen Workaround kennen, dann imemr her damit <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>
<p>Grüße,<br />
Neku</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1083632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083632</guid><dc:creator><![CDATA[Neku]]></dc:creator><pubDate>Fri, 23 Jun 2006 09:21:10 GMT</pubDate></item><item><title><![CDATA[Reply to va_start und Referenzen on Fri, 23 Jun 2006 09:22:20 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Referenzen gibt es in C nicht.</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1083636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083636</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 23 Jun 2006 09:22:20 GMT</pubDate></item><item><title><![CDATA[Reply to va_start und Referenzen on Fri, 23 Jun 2006 09:23:12 GMT]]></title><description><![CDATA[<p>Referenzen gibt's in C nicht. Wie ist der VC++ eingestellt, auf C oder C++ Source?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1083638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083638</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Fri, 23 Jun 2006 09:23:12 GMT</pubDate></item><item><title><![CDATA[Reply to va_start und Referenzen on Fri, 23 Jun 2006 13:11:32 GMT]]></title><description><![CDATA[<p>Mal angenommen va_start ist etwas was sich die Adresse des letzten Objektes der fixen Argumentliste holen möchte - es wird scheitern, weil die Adresse einer Referenz die Adresse des Ursprungsobjektes ist...</p>
<p>EDIT:<br />
Das ist keine wissenschaftlich fundierte Aussage, aber in etwa so stelle ich mir vor wie es zu dieser Access Violation kommt <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/1083780</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083780</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Fri, 23 Jun 2006 13:11:32 GMT</pubDate></item><item><title><![CDATA[Reply to va_start und Referenzen on Fri, 23 Jun 2006 13:12:16 GMT]]></title><description><![CDATA[<p>Ausserdem solltest du ueberpruefen ob es sich wirklich um einen c-string handelt.<br />
Wenn ja, dann machst du noch den Zugriff falsch, verwende mal folgendes:</p>
<pre><code>void Test (int* iTest, ...)
{
    va_list va;
    va_start (va, iTest);
    vprintf (&quot;%s&quot;, va_arg( va, char * ) ); // sollte &quot;test&quot; ausgeben
    va_end (va);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1083798</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083798</guid><dc:creator><![CDATA[moe szyslak]]></dc:creator><pubDate>Fri, 23 Jun 2006 13:12:16 GMT</pubDate></item><item><title><![CDATA[Reply to va_start und Referenzen on Fri, 23 Jun 2006 13:28:23 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/34865">@moe</a> szyslak:<br />
Nein, denn vprintf erwartet va_list und nicht char* - bei printf ohne v wär's was anderes.</p>
<p>Prüfen geht bei variablen Argumentlisten im übrigen nicht, deshalb sind die in C++ ja auch verpönt (und ne Referenz ist C++)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1083807</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083807</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Fri, 23 Jun 2006 13:28:23 GMT</pubDate></item><item><title><![CDATA[Reply to va_start und Referenzen on Fri, 23 Jun 2006 13:48:03 GMT]]></title><description><![CDATA[<p>ups, stimmt, hab zu schnell gelesen, danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1083822</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083822</guid><dc:creator><![CDATA[moe szyslak]]></dc:creator><pubDate>Fri, 23 Jun 2006 13:48:03 GMT</pubDate></item><item><title><![CDATA[Reply to va_start und Referenzen on Sat, 24 Jun 2006 11:55:14 GMT]]></title><description><![CDATA[<p>Ehrlich gesagt hatte ich keinen Schimmer ob es in C Referenzen gibt, als ich mich zwischen C und C++-Forum entscheiden musste, also habe ich mich danach gerichtet, dass vsprintf aus C stammt <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>
<p>Wenn das Thema jemand verschieben könnte wäre nett <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>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10648">@LordJaxom</a>: Klingt sogar logisch <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="🙂"
    /> Intern sind Referenzen zwar auch nur Pointer, aber ich denke, dass mir das hier nicht helfen wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1084455</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1084455</guid><dc:creator><![CDATA[Neku]]></dc:creator><pubDate>Sat, 24 Jun 2006 11:55:14 GMT</pubDate></item><item><title><![CDATA[Reply to va_start und Referenzen on Sat, 24 Jun 2006 12:23:53 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile.php?mode=viewprofile&amp;u=13512" rel="nofollow">c.rackwitz</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=10" rel="nofollow">ANSI C</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=15" rel="nofollow">C++</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1084482</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1084482</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Sat, 24 Jun 2006 12:23:53 GMT</pubDate></item><item><title><![CDATA[Reply to va_start und Referenzen on Sat, 24 Jun 2006 12:45:02 GMT]]></title><description><![CDATA[<p>das fällt unter 18.7/3</p>
<blockquote>
<p>The restrictions that ISO C places on the second parameter to the va_start() macro in header &lt;stdarg.h&gt; are different in this International Standard. The parameter parmN is the identifier of the rightmost parameter in the variable parameter list of the function definition (the one just before the ...). If the parameter parmN is declared with a function, array, or reference type, or with a type that is not compatible with the type that results when passing an argument for which there is no parameter, the behavior is undefined.<br />
SEE ALSO: ISO C subclause 4.8.1.1.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1084500</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1084500</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sat, 24 Jun 2006 12:45:02 GMT</pubDate></item><item><title><![CDATA[Reply to va_start und Referenzen on Sat, 24 Jun 2006 13:01:30 GMT]]></title><description><![CDATA[<p>Wieso muss immer ich auf sämtliche Ausnahmen stoßen?<br />
Danke für den Hinweis <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/1084519</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1084519</guid><dc:creator><![CDATA[Neku]]></dc:creator><pubDate>Sat, 24 Jun 2006 13:01:30 GMT</pubDate></item></channel></rss>