Computer Hardware Forum - TweakPC

Computer Hardware Forum - TweakPC (https://www.tweakpc.de/forum/)
-   Programmiersprachen (https://www.tweakpc.de/forum/programmiersprachen/)
-   -   C++ Array übergeben (https://www.tweakpc.de/forum/programmiersprachen/23074-c-array-uebergeben.html)

--Chris-- 14.02.2005 19:21

C++ Array übergeben
 
Hallo!

Hänge an einer kleinen Sache, komme aber trotzdem nich weiter!

Wie kann ich komplette Arrays von Funktion zu Funktion übergeben?

Er gibt bei mir immer nur einzelne Werte zurück! Aber ich möchte das ganze Feld zurückgeben haben von input[] zu a[]

[CODE]int minput();
void main()
{
int a[2];
a[2]=minput();
}
int minput()
{
int input[2];
cout << "Werte: " << endl;
cin >> input[0] >> input[1];
return input[1];
}[/CODE]

mfg Chris

BomberD 14.02.2005 19:36

AW: C++ Array übergeben
 
du legst das array an

int[] arrayfunction(){
int[] arr1=new int[5];

return arr1;
}

in main rufst du die funktion auf
void main(){
int[] arr2 = arrayfunction;
}

// array von funktion zu funktion übergeben
//einfach den namen des arrays eintragen

void main(){
int[] arr2=new arr[5];
function1(arr2);
}

void function1(int[] arr3){
//benutze arr3 das ist das selbe wie arr2
arr3[3]=0;//wert in array 3 ändern

}

tele 14.02.2005 19:36

AW: C++ Array übergeben
 
uck dir mal an wie man mit pointern variablen übergeben kann, außerdem darfst du nciht nur einzelne elemente desarrays anwählen (also das [] weglassen wenn du das ganze array meinst)

Shadow2000 15.02.2005 10:48

AW: C++ Array übergeben
 
Ein Array ist in C++ ja nur ein Pointer eines bestimmten Typs, der auf einen Bestimmten Speicherblock verweist. Durch die [x] wird nur ein weiterer Pointer errechnet, z.b. bei nem int-Array(bei ner 32 bit-Maschine 4 byte pro wert) also *(arraypointer+4*x); Du musst also nur das Array(pointer) zurückgeben(praktischerweise mit dem selben typ).

BomberD 15.02.2005 10:57

AW: C++ Array übergeben
 
eckige klammern weglassen klingt einfacher ;)

--Chris-- 15.02.2005 11:01

AW: C++ Array übergeben
 
Wenn ich oben das Programm habe!


Wie kann ich dann aus der Funktion minput(), das Array input[] an das Array a[] zurückgeben?

Ich probier schon die ganze zeit rum! Ich bekomms nich hin! Kann das mal bitte kurz jemand umändern, wie er dieses Array in meinem Beispiel übergeben würde!

Wenn ich die Klammern weglasse, spuckt mein Compiler nur Fehler aus!

mfg

BomberD 15.02.2005 11:04

AW: C++ Array übergeben
 
[CODE] int[] minput() //<-- deine methode muss vom typ ineger array sein
{
int[] input=new int[2];//so legt man ein array an!!!
cout << "Werte: " << endl;
cin >> input[0] >> input[1];
return input; //<--- hier darfst du nicht die eckigen klammern nutzen
}
[/CODE]

das haben wir aber oben schon beschrieben ;)

und dann musst du natürlich auch das ergebnis der methode einem array zuweisen und nicht einem feld in einem array(es sei denn das feld in deinem array ist ein array ;))

also int[] a2=new int[2];//2 ist die länge des array
a2=minput(); //a vweist jetzt auf das array input

Shadow2000 15.02.2005 11:05

AW: C++ Array übergeben
 
Du musst dann natürlich den Rückgabewert der Funktion nach int* oder int[] ändern(um keine Cast-Hässlichkeiten zu gebrauchen :inflames: ) Sonst passen die Typen ja nicht.

Kodak 15.02.2005 14:44

AW: C++ Array übergeben
 
Ich schmeiss einfach mal ne Frage in dazwischen :)

Da ich mich ja auch mit C++ beschäftige wollte ich mal fragen was Arrays sind und wozu man die gebrauchen kann ?

Shadow2000 15.02.2005 15:10

AW: C++ Array übergeben
 
Arrays sind ein Feld von Werten, die man dann über ihren index ansprechen kann. Für bsp Mengen von Koeffizienten oder Koordinaten oder für Zeichenketten verwendbar.

BomberD 15.02.2005 15:14

AW: C++ Array übergeben
 
für viele viele sachen.

wenn du zum beispiel messwerte erfasst dan kannst du die zunächst in arrays ablegen und dann zyklisch in ne daten bank schreiben. du kannst damit einfache spiele schreiben. wie tic tac toe (da ists dann ein 2dimensionales feld)
alles in allem fasst du damit meist gleichartige daten zusammen. (wie die o.g. messwerte z.b.
du kannst dir damit auch ne 'art' datenbank aufbauen also spalten und zeilen benutzen.
eigendlich sind die einsatzmöglichkeiten beinahe unbegrenzt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:39 Uhr.

Powered by vBulletin® Version 3.8.10 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
SEO by vBSEO 3.5.2 ©2010, Crawlability, Inc.