C++ eine array an 2 Funktionen weitergeben

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/c_eine_array_an_2_funktionen_weitergeben_161868/page_1 - zur Vollversion wechseln!


Hulk2442 schrieb am 19.04.2006 um 15:14

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 schrieb am 19.04.2006 um 20:33

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 schrieb am 19.04.2006 um 20:37

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 schrieb am 22.04.2006 um 13:05

Hier liegt wohl der "Abtippfehler" vor...


SYSMATRIX schrieb am 22.04.2006 um 18:29

wenn du intervalle, bereiche oä bearbeitest empfiehlt sich sowieso die STL/boost. die sind anfängerfreundlicher als "plain" C++.


ch!LL0uT schrieb am 22.04.2006 um 18:38

Ich würds auch mit pointer machen! Nichtsdestotrotz sehe ich im obigen Programm auch keinen Fehler, reichlich komisch die Sache!


Neo-=IuE=- schrieb am 23.04.2006 um 13:35

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 schrieb am 23.04.2006 um 14:11

Zitat von Neo-=IuE=-
so a frage, is "int array[]" net eh das gleiche wie "int *array" beim übergabeparameter?

Ja.


Neo-=IuE=- schrieb am 24.04.2006 um 18:27

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 schrieb am 25.04.2006 um 21:47

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 schrieb am 26.04.2006 um 07:29

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 schrieb am 26.04.2006 um 11:21

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!




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025