"We are back" « oc.at

C++ eine array an 2 Funktionen weitergeben

Hulk2442 19.04.2006 - 15:14 1187 11
Posts

Hulk2442

Addicted
Avatar
Registered: Oct 2002
Location: AT
Posts: 554
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

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25689
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 :mad:

Bullet0x

Here to stay
Registered: Dec 2004
Location: Austria
Posts: 1426
Zitat von Hulk2442
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
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Hier liegt wohl der "Abtippfehler" vor...

SYSMATRIX

Legend
Legend
Registered: May 2000
Location: ~
Posts: 5019
wenn du intervalle, bereiche oä bearbeitest empfiehlt sich sowieso die STL/boost. die sind anfängerfreundlicher als "plain" C++.

ch!LL0uT

Little Overclocker
Avatar
Registered: Aug 2005
Location: at/noe/muenichre..
Posts: 78
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
Registered: Jun 2002
Location: Berndorf, NÖ
Posts: 3236
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
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11346
Zitat von Neo-=IuE=-
so a frage, is "int array[]" net eh das gleiche wie "int *array" beim übergabeparameter?

Ja.

Neo-=IuE=-

Here to stay
Registered: Jun 2002
Location: Berndorf, NÖ
Posts: 3236
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
Registered: Feb 2003
Location: Austria
Posts: 111
Zitat
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
Avatar
Registered: Mar 2006
Location: 2482
Posts: 708
Zitat von Wannabe2k
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
Avatar
Registered: Oct 2002
Location: AT
Posts: 554
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!
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz