<?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[Funktion mit verschiedenen Argumenten oft aufrufen]]></title><description><![CDATA[<p>Hallo,<br />
ich bräuchte Hilfe bei einer Testfunktion.<br />
Angenommen ich definiere mit ein paar Zeigervariablen vom Typ integer. Weiterhin eine Funktion, die Variablen bzw Zeiger vom Ty p int erwartet.<br />
Nun kann die natürlich die Funktion für jede einzelne int aufrufen.</p>
<p>Aber das muss doch auch mit einer Schleife gehen?<br />
Ich erzeuge mir dazu einen String, der mir die Argumente a0 bis a2 erzeugt. Diese wollte ich dann einfach als &quot;name&quot; übergeben.<br />
Nagut, er meckert natürlich: &quot;cannot convert `std::string' to `int*' for argument `1' to `void funktion(int*)'&quot;.</p>
<p>Wie kann ich das denn doch hinbekommen? Es muss doch Möglichkeiten dafür geben?</p>
<pre><code class="language-cpp">void funktion(int *x) {
     cout &lt;&lt; x &lt;&lt;endl;
}

int main() {

    stringstream name;
    string str;

    int *a0 = 0, *a1 = 0, *a2 = 0;
    funktion(a0);
    funktion(a1);
    funktion(a2);

    for (int i = 0; i &lt; 3; i++) {
        name &lt;&lt; &quot;a&quot; &lt;&lt; i; //setzt mir meine Argumente zusammen
        str = name.str(); //und fügt sie als string aneinander
        cout &lt;&lt; str &lt;&lt; endl; //macht mir zur Kontrolle eine schöne Liste von a0 bis a2
        funktion(str); //hier soll a0.... a2 übergeben werden

        name.str(&quot;&quot;); //damit an str nicht alles angehängt wird, lösch ich die Variable hier
        name.clear();
    }
    system(&quot;PAUSE&quot;);
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/228967/funktion-mit-verschiedenen-argumenten-oft-aufrufen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 28 Sep 2026 05:40:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/228967.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 05 Dec 2008 06:22:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktion mit verschiedenen Argumenten oft aufrufen on Fri, 05 Dec 2008 06:23:20 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich bräuchte Hilfe bei einer Testfunktion.<br />
Angenommen ich definiere mit ein paar Zeigervariablen vom Typ integer. Weiterhin eine Funktion, die Variablen bzw Zeiger vom Ty p int erwartet.<br />
Nun kann die natürlich die Funktion für jede einzelne int aufrufen.</p>
<p>Aber das muss doch auch mit einer Schleife gehen?<br />
Ich erzeuge mir dazu einen String, der mir die Argumente a0 bis a2 erzeugt. Diese wollte ich dann einfach als &quot;name&quot; übergeben.<br />
Nagut, er meckert natürlich: &quot;cannot convert `std::string' to `int*' for argument `1' to `void funktion(int*)'&quot;.</p>
<p>Wie kann ich das denn doch hinbekommen? Es muss doch Möglichkeiten dafür geben?</p>
<pre><code class="language-cpp">void funktion(int *x) {
     cout &lt;&lt; x &lt;&lt;endl;
}

int main() {

    stringstream name;
    string str;

    int *a0 = 0, *a1 = 0, *a2 = 0;
    funktion(a0);
    funktion(a1);
    funktion(a2);

    for (int i = 0; i &lt; 3; i++) {
        name &lt;&lt; &quot;a&quot; &lt;&lt; i; //setzt mir meine Argumente zusammen
        str = name.str(); //und fügt sie als string aneinander
        cout &lt;&lt; str &lt;&lt; endl; //macht mir zur Kontrolle eine schöne Liste von a0 bis a2
        funktion(str); //hier soll a0.... a2 übergeben werden

        name.str(&quot;&quot;); //damit an str nicht alles angehängt wird, lösch ich die Variable hier
        name.clear();
    }
    system(&quot;PAUSE&quot;);
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1625750</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1625750</guid><dc:creator><![CDATA[Kody]]></dc:creator><pubDate>Fri, 05 Dec 2008 06:23:20 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit verschiedenen Argumenten oft aufrufen on Fri, 05 Dec 2008 06:31:34 GMT]]></title><description><![CDATA[<p>Wie soll das auch gehen?Deine Funktion erwartet Zeiger auf int und du übergibst ihr einen string?Ist doch logisch das der da meckert. Das was du da versuchst zu probieren, zur Laufzeit noch an die Variablennamen ranzukommen die du deklariert hast, funktioniert nicht, da nach dem Compilen jegliche Funktionsnname/Variablennanem... nicht mehr existieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1625755</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1625755</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Fri, 05 Dec 2008 06:31:34 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit verschiedenen Argumenten oft aufrufen on Fri, 05 Dec 2008 06:42:53 GMT]]></title><description><![CDATA[<p>Du kannst Deine Zeiger in ein Array packen:</p>
<p>int *ptrArray[3];</p>
<p>oder aber, da wir hier in C++ sind, besser gleich in einen Vektor:</p>
<p>vector&lt;*int&gt; ptrVector;</p>
<p>Diese Konstruktionen kannst Du dann prima in einer Schleife durchlaufen und Zeiger für Zeiger herausholen und an Deine Funktion übergeben.<br />
Allerdings sollten Deine Zeiger dann besser auch auf vernünftige Speicherbereiche verweisen, oder ist das Absicht, daß sie in Deinem Codeschnipsel alle NULL-Zeiger sind?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1625761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1625761</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Fri, 05 Dec 2008 06:42:53 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit verschiedenen Argumenten oft aufrufen on Fri, 05 Dec 2008 06:45:28 GMT]]></title><description><![CDATA[<p>Abgesehen von den Dingen, die in deinem Code nicht stimmen: Wenn du eine Schleife bilden willst, die nacheinander alle deine int-Pointer an deine Funktion übergibt, dann könntest du diese Pointer in einem Array ablegen und mit einer for-Schleife da durch gehen.</p>
<p>Übrigens ist dein Ziel doch sicher eher, int-Variablen zu erzeugen, nicht int-Pointer, oder? Denn du erzeugst hier nicht 3 Pointer, die auf den Wert 0 zeigen...</p>
<p>Vielleicht eher so?</p>
<pre><code class="language-cpp">void funktion(int *x) {
	cout &lt;&lt; *x &lt;&lt;endl;
}

void main() {
	int ai[3]={0,1,2};
	for(int i=0;i&lt;3;i++) {
		funktion(&amp;ai[i]);
	}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1625764</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1625764</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 05 Dec 2008 06:45:28 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit verschiedenen Argumenten oft aufrufen on Fri, 05 Dec 2008 20:27:36 GMT]]></title><description><![CDATA[<p>Erst mal vielen Dank für eure Beiträge. Das hat mich schon weitergebracht.<br />
Hier habe ich ja nur eine konstuierte Funktion gepostet, um das Vorgehen auf mein eigentliches Programmiervorhaben übertragen zu können.</p>
<p>Auf die Zeigervariablen *ai habe ich keinen Einfluss. Ebenso kann ich die &quot;funktion(int *x)&quot; nicht beeinflussen.</p>
<p>Ich habe jetzt eine Möglichkeit gefunden, wie ich eine einzelne Variable aus einem Array an meine Funktion übergeben kann. Hier auf mein Beispiel übertragen sieht es folgendermaßen aus:</p>
<pre><code class="language-cpp">void funktion(int *x) {
     cout &lt;&lt; *x &lt;&lt;endl;
}

int main(void) {
    int A=1;
    int *a=&amp;A; //Zuweisung ient mir nur zum überprüfen. Wichtig ist, dass
               // ich auf keinen der *ai einfluss nehmen kann

    int **ptrArray=&amp;a; //hier muss ich irgendwie alle ai hineinbekommen
    funktion(*ptrArray);

    system(&quot;PAUSE&quot;);
    return 0;
}
</code></pre>
<p>Dieser Code erfüllt genau mein Vorhaben für einen einzelnen Aufruf.<br />
Aber ich kriegs einfach nicht hin, mehrere *ai in den Array zu packen und an die Funktion zu übergeben. Vielleicht könnt ihr mir nochmals Hilfestellung geben?</p>
<p>Lieben Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1625952</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1625952</guid><dc:creator><![CDATA[Kody]]></dc:creator><pubDate>Fri, 05 Dec 2008 20:27:36 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit verschiedenen Argumenten oft aufrufen on Fri, 05 Dec 2008 19:07:14 GMT]]></title><description><![CDATA[<p>Kody schrieb:</p>
<blockquote>
<p>Dieser Code erfüllt genau mein Vorhaben für einen einzelnen Aufruf.<br />
Aber ich kriegs einfach nicht hin, mehrere *ai in den Array zu packen und an die Funktion zu übergeben. Vielleicht könnt ihr mir nochmals Hilfestellung geben</p>
</blockquote>
<p>Deine Funktion arbeitet mit einem Wert, nicht mit n Werten. Also musst du diese über eine Schleife aufrufen. Oder du erzählst uns nicht genügend.</p>
<p>Wenn deine Funktion tatsächlich für Arrays gedacht sein sollte, braucht diese mindestens noch die Angabe der Arraygrößen; dies wird von C-Arrays nunmal nicht irgendwie geliefert.</p>
<p>Edit: Zudem glaube ich an dein Code zu erkennen, das dir noch einige absolute Grundlagen zur Zeigerarithmetik fehlen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1625964</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1625964</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Fri, 05 Dec 2008 19:07:14 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit verschiedenen Argumenten oft aufrufen on Fri, 05 Dec 2008 20:36:12 GMT]]></title><description><![CDATA[<p>Ja, mir fehlt noch ein bisschen der Überblick mit den Zeigern. Deshalb wende ich mich ja an euch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Und fürs erste läuft es jetzt auch. Hier meine Lösung:</p>
<pre><code class="language-cpp">int A=1, B=2, C=3;
    int *a=&amp;A, *b=&amp;B, *c=&amp;C;

    int **ptrArray[3]={&amp;a, &amp;b, &amp;c};

    for(int i=0;i&lt;3;i++) {
        funktion(*ptrArray[i]);
    }
</code></pre>
<p>Danke für alle Hilfe!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1625992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1625992</guid><dc:creator><![CDATA[Kody]]></dc:creator><pubDate>Fri, 05 Dec 2008 20:36:12 GMT</pubDate></item></channel></rss>