übergebende Parameter als Vektor auffassen
-
Hallo,
ich möchte die übergebenen Parameter einer Funktion als Vektor auffassen. Ich dachte so müsste das funktionieren:
void zaehle(int zahl1, int zahl2, int zahl3, int zahl4, int zahl5) { int i; int *zahl=&zahl1; for(i=0;i<5;i++) printf("%i ", zahl[i]); }
leider nicht mit gewünschtem Ergebnis. Kann mir jemand helfen?
Danke.
-
Vektor, Vector oder Array?
-
Ist vector nicht Englisch und heißt Vektor?
Son ding hier:
zahl[i]
-
void zaehle(int *zahl) { int i; for(i=0;i<5;i++) printf("%i ", zahl[i]); }
Besser so.
Der Compiler muss die Argumente nicht nacheinander ablegen.
-
Kóyaánasqatsi schrieb:
Vektor, Vector oder Array?
ist manchmal das selbe.
zur frage: theoretisch machbar, übergabewerte liegen oft hintereinander (werden auf den stack gepusht oder so). aber ich würde solche faxen sein lassen. ist höchst unportabel und beim wechsel auf die nächste compilerversion geht's wahrscheinlich nicht mehr.
-
Achso, schade.
Hatte gedacht das würde gehen.
Trotzdem danke.
-
ist manchmal das selbe.
std::vector != Array
-
@ bgdnoy:
Die übergebenen Zahlen liegen nicht nebeneinander.
-
dahaack schrieb:
@ bgdnoy:
Die übergebenen Zahlen liegen nicht nebeneinander.
mach sie doch nebeneinanderliegend.
-
... wenn die Welt doch so einfach wäre.
Die übergebenen Werte kommen aus einer matrix[6][7].
Ich habs jetzt halt auf den rechenaufwendigen Standardweg gemacht.
int zahl[5];
zahl[0]=zahl1;
zahl[1]=zahl2;
....Hatte gehofft diese Rechenzeit sparen zu können.
-
Die übergebenen Zahlen liegen nicht nebeneinander.
stdarg.h wäre auch eine Möglichkeit.
Hab aber keine Ahnung, ob das schneller ist.
-
Kóyaánasqatsi schrieb:
ist manchmal das selbe.
std::vector != Array
ich meine nicht dieses std::-gelumpe, hier http://en.wikipedia.org/wiki/Vector
ester punkt: 'A one-dimensional array'
-
Bei den meisten Compilern sollte die Methode funktionieren. Ist allerdings nicht standardkonform.
-
Bei den meisten Compilern sollte die Methode funktionieren.
Und wie kommst du auf "sollte"?
Weil's der Pabst empfiehlt?
Oder die französische Fremdenlegion?