<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Funktionen in C/C++</title>
    <link>http://forum.geizhals.at/feed.jsp?id=62361</link>
    <description>Geizhals-Forum</description>
    <item>
      <title>Re(11): Funktionen in C/C++</title>
      <link>http://forum.geizhals.at/t62361,312476.html#312476</link>
      <description>Ahh, depp ich, schauen sollt ma können&lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":-)"/&gt; (wie war das? zuerst lesen, dann denken, dann posten&lt;img src="frage.gif" width="16" height="26" align="absmiddle" alt="?-)"/&gt;)&lt;br&gt;&lt;br&gt;Auf jeden Fall ein großes Dankeschön&lt;br/&gt;</description>
      <pubDate>Mon, 11 Mar 2002 12:30:17 GMT</pubDate>
      <guid>http://forum.geizhals.at/t62361,312476.html#312476</guid>
      <dc:creator>MikeM</dc:creator>
      <dc:date>2002-03-11T12:30:17Z</dc:date>
    </item>
    <item>
      <title>Re(10): Funktionen in C/C++</title>
      <link>http://forum.geizhals.at/t62361,312470.html#312470</link>
      <description>Der Strukturname. Kannst es auch asdfjwen nennen, aber node is' halt sprechender. &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br/&gt;</description>
      <pubDate>Mon, 11 Mar 2002 12:21:18 GMT</pubDate>
      <guid>http://forum.geizhals.at/t62361,312470.html#312470</guid>
      <dc:creator>Fly</dc:creator>
      <dc:date>2002-03-11T12:21:18Z</dc:date>
    </item>
    <item>
      <title>Re(9): Funktionen in C/C++</title>
      <link>http://forum.geizhals.at/t62361,312468.html#312468</link>
      <description>Pff, und da soll man daneben auch noch was arbeiten. &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":-)"/&gt;&lt;br&gt;Schwieriger als ich dachte.&lt;br&gt;&lt;br&gt;Wie gesagt, muß mich mal hinsetzen und genau durchgehen, wofür ich jetzt keine Zeit hab (irgendwie hat mein Chef was dagegen mich mit 'fachfremden' Dingen zu beschäftigen &lt;img src="frage.gif" width="16" height="26" align="absmiddle" alt="?-)"/&gt;)&lt;br&gt;&lt;br&gt;Aber eine Frage hab ich noch: was für ein Typ ist dieses node* ? Hab ich noch nicht gelernt.&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Mon, 11 Mar 2002 12:16:48 GMT</pubDate>
      <guid>http://forum.geizhals.at/t62361,312468.html#312468</guid>
      <dc:creator>MikeM</dc:creator>
      <dc:date>2002-03-11T12:16:48Z</dc:date>
    </item>
    <item>
      <title>Re(8): Funktionen in C/C++</title>
      <link>http://forum.geizhals.at/t62361,312444.html#312444</link>
      <description>Hmm... ich komm' ned dahinter, wofür Du 'ne Doppelkette braucht, und der Pointer auf den Wert kannst durch den Wert selbst ersetzen, kostet genauso viel.&lt;br&gt;&lt;br&gt;Ich tät's in etwa so machen (wenn schon mit Liste statt Baum):&lt;br&gt;&lt;br&gt;struct node {&lt;br&gt;&amp;nbsp;&amp;nbsp;int value;&lt;br&gt;&amp;nbsp;&amp;nbsp;node* next;&lt;br&gt;}&lt;br&gt;&lt;br&gt;void insert (node* base, int newval)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;node* tempnode=new node;&lt;br&gt;&amp;nbsp;&amp;nbsp;tempnode-&gt;value=newval;&lt;br&gt;&amp;nbsp;&amp;nbsp;tempnode-&gt;next=base;&lt;br&gt;&amp;nbsp;&amp;nbsp;base=tempnode;&lt;br&gt;}&lt;br&gt;&lt;br&gt;Das würde mal 'n neuen Wert einfach an den Anfang der Liste setzen (nicht sortiert).&lt;br&gt;&lt;br&gt;Um ihn sortiert einzufügen gibt's einige Algos. Ein recht simpler (allerdings bei grossen Datenmengen SEHR langsamer) wäre:&lt;br&gt;&lt;br&gt;void insert_sorted (node* base, int newval)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;if (!base)&lt;br&gt;&amp;nbsp;&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;base = new node;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;base-&gt;value=newval;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;base-&gt;next=NULL;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return;&lt;br&gt;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;if (base-&gt;value &lt; newval)&lt;br&gt;&amp;nbsp;&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;insert_sorted (base-&gt;next, newval);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return;&lt;br&gt;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;node* tempnode=base;&lt;br&gt;&amp;nbsp;&amp;nbsp;base=new node;&lt;br&gt;&amp;nbsp;&amp;nbsp;base-&gt;value=newval;&lt;br&gt;&amp;nbsp;&amp;nbsp;base-&gt;next=tempnode;&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;So oder so ähnlich...&lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br/&gt;</description>
      <pubDate>Mon, 11 Mar 2002 11:45:06 GMT</pubDate>
      <guid>http://forum.geizhals.at/t62361,312444.html#312444</guid>
      <dc:creator>Fly</dc:creator>
      <dc:date>2002-03-11T11:45:06Z</dc:date>
    </item>
    <item>
      <title>Re(7): Funktionen in C/C++</title>
      <link>http://forum.geizhals.at/t62361,312431.html#312431</link>
      <description>Die Funktion soll die Werte (deren Anzahl nicht vorgegeben ist), die von der rufenden Funktion mitgeschickt werden, aufsteigend sortiert wieder zurückgeben.&lt;br&gt;&lt;br&gt;Und die unbekannte Anzahl wird dadurch bestimmt, daß ich in der Struktur einen Anfangs- und einen Endpointer hab:&lt;br&gt;&lt;br&gt;struct BLA&lt;br&gt;{ int *ptr_anf;&lt;br&gt;&amp;nbsp;&amp;nbsp;int *ptr_wert;&lt;br&gt;&amp;nbsp;&amp;nbsp;int *ptr_end;&lt;br&gt;} &lt;br&gt;&lt;br&gt;Und nach dem einlesen von den ersten beiden Werten, wird der *prt_end mit *prt_anf gleichgesetzt, sodaß wieder Werte eingelesen werden können.&lt;br&gt;&lt;br&gt;So oder so ähnlich hab ich das verstanden. Kann auch sein das ich Blödsinn red, wie gesagt, muß erstmal richtig dahintersteigen.&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Mon, 11 Mar 2002 11:22:34 GMT</pubDate>
      <guid>http://forum.geizhals.at/t62361,312431.html#312431</guid>
      <dc:creator>MikeM</dc:creator>
      <dc:date>2002-03-11T11:22:34Z</dc:date>
    </item>
    <item>
      <title>Re: Funktionen in C/C++</title>
      <link>http://forum.geizhals.at/t62361,312348.html#312348</link>
      <description>Aus MSDN - damit sollte eigentlich alles klar sein:&lt;br&gt;&lt;br&gt;void main( void )&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp; /* Call with 3 integers (-1 is used as terminator). */&lt;br&gt;&amp;nbsp;&amp;nbsp; printf( "Average is: %d\n", average( 2, 3, 4, -1 ) );&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; /* Call with 4 integers. */&lt;br&gt;&amp;nbsp;&amp;nbsp; printf( "Average is: %d\n", average( 5, 7, 9, 11, -1 ) );&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; /* Call with just -1 terminator. */&lt;br&gt;&amp;nbsp;&amp;nbsp; printf( "Average is: %d\n", average( -1 ) );&lt;br&gt;}&lt;br&gt;&lt;br&gt;/* Returns the average of a variable list of integers. */&lt;br&gt;&lt;br&gt;int average( int first, ... )&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp; int count = 0, sum = 0, i = first;&lt;br&gt;&amp;nbsp;&amp;nbsp; va_list marker;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; va_start( marker, first );&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Initialize variable arguments. */&lt;br&gt;&amp;nbsp;&amp;nbsp; while( i != -1 )&lt;br&gt;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sum += i;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;count++;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i = va_arg( marker, int);&lt;br&gt;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp; va_end( marker );&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Reset variable arguments.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/&lt;br&gt;&amp;nbsp;&amp;nbsp; return( sum ? (sum / count) : 0 );&lt;br&gt;}&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Mon, 11 Mar 2002 09:44:53 GMT</pubDate>
      <guid>http://forum.geizhals.at/t62361,312348.html#312348</guid>
      <dc:creator>TheWikkinger</dc:creator>
      <dc:date>2002-03-11T09:44:53Z</dc:date>
    </item>
    <item>
      <title>Re(6): Funktionen in C/C++</title>
      <link>http://forum.geizhals.at/t62361,312321.html#312321</link>
      <description>Ömmm... was?&lt;br&gt;&lt;br&gt;Ganz andere Frage, musst Du die Liste nachträglich sortieren (bekommst also eine Struktur vorgegeben, und wenn ja, wie schaut die aus?) oder kannst sie beim Eintragen bereits sortieren? Falls zweiteres ist der Sorttree die sauberste Lösung, falls ersteres wär's interessant wie die Struktur ausschauen muss.&lt;br/&gt;</description>
      <pubDate>Mon, 11 Mar 2002 08:48:27 GMT</pubDate>
      <guid>http://forum.geizhals.at/t62361,312321.html#312321</guid>
      <dc:creator>Fly</dc:creator>
      <dc:date>2002-03-11T08:48:27Z</dc:date>
    </item>
    <item>
      <title>Re(5): Funktionen in C/C++</title>
      <link>http://forum.geizhals.at/t62361,312316.html#312316</link>
      <description>Hallo!&lt;br&gt;&lt;br&gt;Erstmal danke dafür, konnte am WE leider nicht ins Netz.&lt;br&gt;&lt;br&gt;Hab von anderer Stelle auch den Hinweis mit den Pointern in einer Struktur bekommen. Zwei Pointer, einer zeigt auf den Anfang der Liste einer ans Ende, und danach den zweiten als Anfang zuweisen usw. . Also rekursiv um noch ein Fremdwort zu gebrauchen &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":-)"/&gt;&lt;br&gt;&lt;br&gt;Eigentlich weiß ich jetzt wie es zu lösen ist, nur muß ich das ganze noch genauer durchgehen, um es zu verstehen. naja, wird noch ein bisserl dauern &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":-)"/&gt;&lt;br&gt;&lt;br&gt;Danke&lt;br/&gt;</description>
      <pubDate>Mon, 11 Mar 2002 08:36:15 GMT</pubDate>
      <guid>http://forum.geizhals.at/t62361,312316.html#312316</guid>
      <dc:creator>MikeM</dc:creator>
      <dc:date>2002-03-11T08:36:15Z</dc:date>
    </item>
    <item>
      <title>Re(4): Funktionen in C/C++</title>
      <link>http://forum.geizhals.at/t62361,310962.html#310962</link>
      <description>Nun, wenn nicht isses ned ganz trivial 'n Sorttree zu verstehen. Vor allem, weil ich'n hier schlecht aufzeichnen kann.&lt;br&gt;&lt;br&gt;Im Grunde genommen wird beim Eintragen in dem Tree bereits sortiert, das Auslesen is' dann im Endeffekt nur mehr 'n Abarbeiten der Struktur. Müsste so ähnlich wie das hier funktionieren (ich hab's mal eben aus'm Stegreif hingeklopft und ned kompeliert, keine Garantie also):&lt;br&gt;&lt;br&gt;struct node {&lt;br&gt;&amp;nbsp;&amp;nbsp;int value;&lt;br&gt;&amp;nbsp;&amp;nbsp;node* lnode;&lt;br&gt;&amp;nbsp;&amp;nbsp;node* rnode;&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;void insert (node* base, int newval)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;if (newval&lt;value if lnode lnode="new" node lnode/&gt;value=newval;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lnode-&gt;lnode=NULL;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lnode-&gt;rnode=NULL;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;insert (lnode, newval);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return;&lt;br&gt;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;if (!rnode)&lt;br&gt;&amp;nbsp;&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rnode=new node;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rnode-&gt;value=newval;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rnode-&gt;lnode=NULL;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rnode-&gt;rnode=NULL;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return;&lt;br&gt;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;insert (rnode, newval);&lt;br&gt;}&lt;br&gt;&lt;br&gt;void read (node* base)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;if (lnode) read (lnode);&lt;br&gt;&amp;nbsp;&amp;nbsp;printf ("%i", value);&lt;br&gt;&amp;nbsp;&amp;nbsp;if (rnode) read (rnode);&lt;br&gt;}&lt;br&gt;&lt;br&gt;Funktioniert allerdings nur, wenn ein Wert nicht mehrmals vorkommen darf. Falls doch wäre es praktisch, 'ne zusätzliche Variable im Knoten zu haben, die die Vielfachheit zählt und in der insert-routine wird abgeprüft ob die Zahl gleich der Zahl im Knoten ist, falls ja den Zähler inkrementieren und die Routine beenden.&lt;br&gt;&lt;br&gt;Objektorientiert lässt sich's noch ein bisserl eleganter basteln, dann wird's aber auch ein wenig unübersichtlicher.&lt;br/&gt;</description>
      <pubDate>Sat, 09 Mar 2002 17:58:31 GMT</pubDate>
      <guid>http://forum.geizhals.at/t62361,310962.html#310962</guid>
      <dc:creator>Fly</dc:creator>
      <dc:date>2002-03-09T17:58:31Z</dc:date>
    </item>
    <item>
      <title>Re(3): Funktionen in C/C++</title>
      <link>http://forum.geizhals.at/t62361,310822.html#310822</link>
      <description>wenn er nach funktionen erst fragt, wird er davon noch 0 ahnung habn &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";)"/&gt;&lt;br/&gt;</description>
      <pubDate>Sat, 09 Mar 2002 15:03:03 GMT</pubDate>
      <guid>http://forum.geizhals.at/t62361,310822.html#310822</guid>
      <dc:creator>pong</dc:creator>
      <dc:date>2002-03-09T15:03:03Z</dc:date>
    </item>
    <item>
      <title>Re: Funktionen in C/C++</title>
      <link>http://forum.geizhals.at/t62361,310727.html#310727</link>
      <description>Hi;&lt;br&gt;&lt;br&gt;hab ich noch nie gehört; woher hast du denn diese Info?&lt;br&gt;&lt;br&gt;Grüße&lt;br&gt;F.Z.&lt;br/&gt;</description>
      <pubDate>Sat, 09 Mar 2002 13:27:20 GMT</pubDate>
      <guid>http://forum.geizhals.at/t62361,310727.html#310727</guid>
      <dc:creator>Zappa F.</dc:creator>
      <dc:date>2002-03-09T13:27:20Z</dc:date>
    </item>
    <item>
      <title>Re: Funktionen in C/C++</title>
      <link>http://forum.geizhals.at/t62361,310260.html#310260</link>
      <description>Sieh dir mal die manpages zu varargs, va_start, va_arg und va_end an. Kann dir leider nicht viel weiter helfen, da ich damit auch noch nicht gearbeitet habe.&lt;br/&gt;</description>
      <pubDate>Fri, 08 Mar 2002 22:35:02 GMT</pubDate>
      <guid>http://forum.geizhals.at/t62361,310260.html#310260</guid>
      <dc:creator>le</dc:creator>
      <dc:date>2002-03-08T22:35:02Z</dc:date>
    </item>
    <item>
      <title>Re(2): Funktionen in C/C++</title>
      <link>http://forum.geizhals.at/t62361,309952.html#309952</link>
      <description>Bevor ich's schreib, wieviel weisst Du von Listen/Bäumen?&lt;br/&gt;</description>
      <pubDate>Fri, 08 Mar 2002 18:08:29 GMT</pubDate>
      <guid>http://forum.geizhals.at/t62361,309952.html#309952</guid>
      <dc:creator>Fly</dc:creator>
      <dc:date>2002-03-08T18:08:29Z</dc:date>
    </item>
    <item>
      <title>Re: Funktionen in C/C++</title>
      <link>http://forum.geizhals.at/t62361,309858.html#309858</link>
      <description>Sorry, aber ich wüsst' auch keinen Weg wie man 'ne variable Anzahl an Parametern definieren könnte. Du könntest X Parameter definieren und halt nur "weniger als X" übergeben, allerdings könntest Du maximal X Parameter verwenden.&lt;br&gt;&lt;br&gt;'ne Option wäre, die Eingabewerte in einer verketteten Liste zu speichern und den Pointer auf's erste Element zum Sortieren zu übergeben. Ich schreib Dir was zusammen wenn ich zuhaus bin, is' ned so schwer wie's jetzt mal klingt.&lt;br/&gt;</description>
      <pubDate>Fri, 08 Mar 2002 16:44:36 GMT</pubDate>
      <guid>http://forum.geizhals.at/t62361,309858.html#309858</guid>
      <dc:creator>Fly</dc:creator>
      <dc:date>2002-03-08T16:44:36Z</dc:date>
    </item>
    <item>
      <title>Re: Funktionen in C/C++</title>
      <link>http://forum.geizhals.at/t62361,309847.html#309847</link>
      <description>die anzahl der parameter kannst ned variable veranschlagen, sonst wärs ja pfusch&lt;br&gt;&lt;br&gt;&lt;br&gt;bzeispiel zum verwenden:&lt;br&gt;&lt;br&gt;int blubb (int a, int b)&lt;br&gt;{&lt;br&gt;int c;&lt;br&gt;&lt;br&gt;c=a;&lt;br&gt;a=b;&lt;br&gt;b=c;&lt;br&gt;return a;&lt;br&gt;//jaja ich weiss das sowas unsinnig is, danke &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";)"/&gt;&lt;br&gt;}&lt;br/&gt;</description>
      <pubDate>Fri, 08 Mar 2002 16:33:36 GMT</pubDate>
      <guid>http://forum.geizhals.at/t62361,309847.html#309847</guid>
      <dc:creator>pong</dc:creator>
      <dc:date>2002-03-08T16:33:36Z</dc:date>
    </item>
    <item>
      <title>Funktionen in C/C++</title>
      <link>http://forum.geizhals.at/t62361,309782.html#309782</link>
      <description>Hallo Leute!&lt;br&gt;&lt;br&gt;Fang grad an damit, also nicht gleich hauen, wenns ne unnötige Frage is (da es ja angeblich keine blöden Fragen gibt &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":-)"/&gt;).&lt;br&gt;&lt;br&gt;Also: es gibt ja die Möglichkeit beim Prototypen einer Funktion die Anzahl der Parameter offen zu lassen&lt;br&gt;z.B.:&lt;br&gt;void sortier(int n, ...);&lt;br&gt;&lt;br&gt;Wie kann ich innerhalb dieser Funktion die zusätzlichen Parameter ansprechen?&lt;br&gt;Ich möchte im obigen Beispiel eine Funktion schreiben, die alle Eingangswerte aufsteigend sortiert, wobei die Werte nicht in einem Array (dafür gibts ja qsort) liegen, sondern eigene Variablen haben.&lt;br&gt;&lt;br&gt;Danke&lt;br/&gt;</description>
      <pubDate>Fri, 08 Mar 2002 15:02:12 GMT</pubDate>
      <guid>http://forum.geizhals.at/t62361,309782.html#309782</guid>
      <dc:creator>MikeM</dc:creator>
      <dc:date>2002-03-08T15:02:12Z</dc:date>
    </item>
  </channel>
</rss>
