<?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[Paramtertübergabe in main (... prüfen]]></title><description><![CDATA[<p>Hallo,</p>
<p>Sorry ich wusste nicht wirklich wonach ich suchen sollte <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>Anbei meine Frage:</p>
<p>Man nehme:</p>
<pre><code>int main (int argc, const char *argv[]) {

....

string intjn;
if (argv[3]) intjn = argv[3];

...
</code></pre>
<p>Nun meine Frage / Problem:</p>
<p>Wenn ich keine Parameter übergebe, kommt es zu einem Bad Pointer <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>Um dieses zu vermeiden frage ich momentan argc ab um festzustellen, ob die Anzahl der übergebenen Parameter passt. Damit funktioniert das Ganze auch.</p>
<p>Nun meine Frage gibt es eine Möglichkeit vor</p>
<pre><code>if (argv[3]) intjn = argv[3];
</code></pre>
<p>zu prüfen ob argv[1...2...3...] gültig sind?</p>
<p>Danke......</p>
<p>Gruß,<br />
Marcus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/200114/paramtertübergabe-in-main-prüfen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 04 Oct 2026 10:09:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/200114.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 10 Dec 2007 19:42:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Paramtertübergabe in main (... prüfen on Mon, 10 Dec 2007 19:42:18 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Sorry ich wusste nicht wirklich wonach ich suchen sollte <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>Anbei meine Frage:</p>
<p>Man nehme:</p>
<pre><code>int main (int argc, const char *argv[]) {

....

string intjn;
if (argv[3]) intjn = argv[3];

...
</code></pre>
<p>Nun meine Frage / Problem:</p>
<p>Wenn ich keine Parameter übergebe, kommt es zu einem Bad Pointer <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>Um dieses zu vermeiden frage ich momentan argc ab um festzustellen, ob die Anzahl der übergebenen Parameter passt. Damit funktioniert das Ganze auch.</p>
<p>Nun meine Frage gibt es eine Möglichkeit vor</p>
<pre><code>if (argv[3]) intjn = argv[3];
</code></pre>
<p>zu prüfen ob argv[1...2...3...] gültig sind?</p>
<p>Danke......</p>
<p>Gruß,<br />
Marcus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1418384</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1418384</guid><dc:creator><![CDATA[stom2006]]></dc:creator><pubDate>Mon, 10 Dec 2007 19:42:18 GMT</pubDate></item><item><title><![CDATA[Reply to Paramtertübergabe in main (... prüfen on Mon, 10 Dec 2007 19:47:11 GMT]]></title><description><![CDATA[<p>Was genau meinst Du? Geht es um folgendes?</p>
<pre><code class="language-cpp">if (argc &gt; 3 and argv[3]) …
</code></pre>
<p>Oder was meinst Du sonst mit „gültig“?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1418389</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1418389</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Mon, 10 Dec 2007 19:47:11 GMT</pubDate></item><item><title><![CDATA[Reply to Paramtertübergabe in main (... prüfen on Mon, 10 Dec 2007 19:51:45 GMT]]></title><description><![CDATA[<p>...</p>
<p>Ja genau darum geht es mir.</p>
<p>Wenn ich das bisher mit meinem Newbee Verständnis richtig begriffen habe, bekomme ich wenn ich nicht prüfe und auch keine Parameter übergebe und dann auf argv[3] zugreife einem Bad Poniter. Richtig?.</p>
<p>Die Frage müsste dann wohl korrekt heißen:</p>
<p>Kann ich prüfen ob ein Pointer hier (argv[x]) ein Bad Pointer ist und ich somit auf den Check argc &lt;= xy verzichten KÖNNTE.</p>
<p>Gruß,<br />
Marcus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1418392</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1418392</guid><dc:creator><![CDATA[stom2006]]></dc:creator><pubDate>Mon, 10 Dec 2007 19:51:45 GMT</pubDate></item><item><title><![CDATA[Reply to Paramtertübergabe in main (... prüfen on Mon, 10 Dec 2007 19:57:12 GMT]]></title><description><![CDATA[<p>Nein, kannst Du tatsächlich nicht. Per Definition ist argv[n] nur dann gültig wenn n &lt; argc ist. Jeder Zugriff auf ein ungültiges Arrayelement (gilt für jedwedes Array) erzeugt undefiniertes Verhalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1418399</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1418399</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 10 Dec 2007 19:57:12 GMT</pubDate></item><item><title><![CDATA[Reply to Paramtertübergabe in main (... prüfen on Mon, 10 Dec 2007 19:59:07 GMT]]></title><description><![CDATA[<p>Danke!</p>
<p>Vorerst letzte Frage. Ist das Verständnis mit dem bad pointer richtig oder habe ih da was falsch verstanden?</p>
<p>Gruß,<br />
Marcus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1418402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1418402</guid><dc:creator><![CDATA[stom2006]]></dc:creator><pubDate>Mon, 10 Dec 2007 19:59:07 GMT</pubDate></item><item><title><![CDATA[Reply to Paramtertübergabe in main (... prüfen on Mon, 10 Dec 2007 20:05:17 GMT]]></title><description><![CDATA[<p>Nunja, &quot;bad Pointer&quot; ist englisch für &quot;schlechter Zeiger&quot; - insofern vollkommen zutreffend. Falls Du damit aber meinst, dass der Zugriff auf einen schlechten Zeiger zu einem Fehler führen muss: Das muss es nicht. Undefiniertes Verhalten bedeutet, dass irgendwas passiert, normalerweise liest Du Datenmüll oder das Programm stürzt ab.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1418404</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1418404</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 10 Dec 2007 20:05:17 GMT</pubDate></item><item><title><![CDATA[Reply to Paramtertübergabe in main (... prüfen on Mon, 10 Dec 2007 20:21:40 GMT]]></title><description><![CDATA[<p>Ok</p>
<p>Dann will ich das nochmal für mich sortieren.</p>
<p><div class="plugin-markdown"><input type="checkbox" id="checkbox44403" checked="true" /><label for="checkbox44403">zeigt immer auf eine Adresse im Speicher ist also ein Zeiger/Pointer (was also nicht wirklich &quot;bad&quot; ist)</label></div></p>
<p>Was allerdings an der Stelle im Speicher steht ist dann eine ganz andere Frage.</p>
<p>Oder gibt es noch eine andere/richtige Form von Bad Pointer?</p>
<p>Gruß,<br />
Marcus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1418408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1418408</guid><dc:creator><![CDATA[stom2006]]></dc:creator><pubDate>Mon, 10 Dec 2007 20:21:40 GMT</pubDate></item><item><title><![CDATA[Reply to Paramtertübergabe in main (... prüfen on Mon, 10 Dec 2007 20:42:39 GMT]]></title><description><![CDATA[<p>stom2006 schrieb:</p>
<blockquote>
<p><div class="plugin-markdown"><input type="checkbox" id="checkbox44404" checked="true" /><label for="checkbox44404">zeigt immer auf eine Adresse im Speicher ist also ein Zeiger/Pointer (was also nicht wirklich &quot;bad&quot; ist)</label></div></p>
<p>Was allerdings an der Stelle im Speicher steht ist dann eine ganz andere Frage.</p>
</blockquote>
<p>Na ja, das ist alles eine Frage, wie man „bad“ definiert. Es *kann* durchaus zu einem Crash kommen. Visual C++ im Debug-Modus z.B. beendet das Programm sang- und klanglos.</p>
<p>Theoretisch (praktisch wohl eher nicht) könnte der PC aber auch beginnen, Deine Festplatte zu löschen und gleichzeitig rosarote Seifenblasen auf Deinen Bildschirm zu zaubern, wenn Du versuchst, einen ungültigen Zeiger zu lesen.</p>
<p>„Undefiniertes Verhalten“ ist eigentlich ein Synonym für „Katastrophe“. Als Beispiel: Die Ariane 5 ist aufgrund undefinierten Verhaltens abgestürzt. Ein *definiertes* Fehlverhalten hätte hingegen kein größeres Problem ergeben. Von daher würde ich sagen: ein undefinierter Zeiger *ist* „bad“.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1418426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1418426</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Mon, 10 Dec 2007 20:42:39 GMT</pubDate></item><item><title><![CDATA[Reply to Paramtertübergabe in main (... prüfen on Mon, 10 Dec 2007 21:18:39 GMT]]></title><description><![CDATA[<p>Danke euch!</p>
<p>Gruß,<br />
Marcus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1418439</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1418439</guid><dc:creator><![CDATA[stom2006]]></dc:creator><pubDate>Mon, 10 Dec 2007 21:18:39 GMT</pubDate></item></channel></rss>