C++ eine array an 2 Funktionen weitergeben
Hulk2442 19.04.2006 - 15:14 1187 11
Hulk2442
Addicted
|
Hi Habe ein kleines C++ denk Problemm und hoffe das ich mir helfen könnt! Folgendes ich erstelle eine Array und übergebe es an eine Funktion und von dort aus an eine zweite und befülle es in der Zweiten Funktion mit Daten.
main { int array[100]; klasse_1 K1; K1.funktion1(array); }
void klasse_1::funktion1(int array[]) { klasse_2 K2; K2.funktion2(array); }
void klasse_2::funktion2(int array[]) { array[1]=1; }
Jetzt bekomme ich aber eine Fehlermeldung mit folgendem Inhalt error: invalid conversion from ‘int*’ to ‘int’
Muß ich da was mit pointer auf pointer machen oder da ja das array ja als pointer auf den begin des Platzes zeigt welcher für das Aray reserviert wurde.
|
mat
AdministratorLegends never die
|
ich arbeite immer mit pointer bei einer übergabe eines arrays an eine funktion. das ist im allgemeinen der einfachere weg. auf der anderen seite kann ich bei deinem code, bis auf die falsch definierte main(), keinen fehler erkennen. mit welchem compiler arbeitest du? in welcher zeile tritt der fehler auf? ps: deine rechtschreibung ist wirklich hundig
|
Bullet0x
Here to stay
|
Hi Habe ein kleines C++ denk Problemm und hoffe das ich mir helfen könnt! Folgendes ich erstelle eine Array und übergebe es an eine Funktion und von dort aus an eine zweite und befülle es in der Zweiten Funktion mit Daten.
main { int array[100]; klasse_1 K1; K1.funktion1(array); }
void klasse_1::funktion1(int array[]) { klasse_2 K2; K2.funktion2(array); }
void klasse_2::funktion2(int array[]) { array[1]=1; }
Jetzt bekomme ich aber eine Fehlermeldung mit folgendem Inhalt error: invalid conversion from ‘int*’ to ‘int’
Muß ich da was mit pointer auf pointer machen oder da ja das array ja als pointer auf den begin des Platzes zeigt welcher für das Aray reserviert wurde. machs mit pointer.. das is viel einfacher!
|
Ringding
Pilot
|
Hier liegt wohl der "Abtippfehler" vor...
|
SYSMATRIX
Legend Legend
|
wenn du intervalle, bereiche oä bearbeitest empfiehlt sich sowieso die STL/boost. die sind anfängerfreundlicher als "plain" C++.
|
ch!LL0uT
Little Overclocker
|
Ich würds auch mit pointer machen! Nichtsdestotrotz sehe ich im obigen Programm auch keinen Fehler, reichlich komisch die Sache!
|
Neo-=IuE=-
Here to stay
|
so a frage, is "int array[]" net eh das gleiche wie "int *array" beim übergabeparameter? oda bin i jetzt komplett daneben, dann korigierts mich bitte
|
that
Hoffnungsloser Optimist
|
so a frage, is "int array[]" net eh das gleiche wie "int *array" beim übergabeparameter? Ja.
|
Neo-=IuE=-
Here to stay
|
na dann ist mir etwas unklar, was hier einige meinen mit "machs mit pointern, is einfacher" genau wegen den sprüchen war ich etwas verwirrt, ob i mi da jetzt net vertan hab
|
Wannabe2k
Little Overclocker
|
K2.funktion2(array); kann sein das ich voll daneben lieg, aber solltest as da ned mit &array übergeben? weil sonst hast ja **array in k2 oder? hab seit 2 jahren nix mehr in c gmacht, also wenns a blödsin is den post bitte vergessen ^^
|
Luzandro
Here to stay
|
kann sein das ich voll daneben lieg, aber solltest as da ned mit &array übergeben? weil sonst hast ja **array in k2 oder? nein, das bekommst du, wenn du es so machst function(int array[]) übergibt einen pointer auf einen int - wenn du hier jetzt noch '&' verwendest, erhältst du die addr. von diesem pointer, sprich du übergibst einen pointer auf einen pointer
|
Hulk2442
Addicted
|
THX für die Hilfe Habe mittlerweile durch kleine änderung an einm andern Teil des Programmes, es geschaft den mittleren Teil zu übergehen und somit direckt die funktion2 aufzurufen! Und diese funkt super!
THX nochmal!
|