Parameter und Rückgabewerte mit Arrays in C/C++

Hallo,
für mich ist das Thema C/C++ ganz neu. Ich habe folgendes Problem. Ich habe in meiner main.cpp
ein array erzeugt und will dies als Parameter an eine funktion übergeben. Kann ich das so machen??

rückgabewert funktionsname (typ arrayname [])
oder muss man dafür einen pointer benutzen?

wäre für ein Beispiel sehr dankbar falls beides möglich ist wären zwei Beispiele sehr gut.

Kann man ein array auch als rückgabewert benutzen bzw. welche möglichkeiten gibt es da (Beispiel) ???

Wäre super wenn mir als Neuling ein alter Hase helfen könnte.

Hallo Adrian_Pryde,

da führen viele Wege nach Rom. So wie du es gemacht hast, kann es schon funktionieren. In einem Beispiel sähe das so aus:

#include 

int sum(int arr[], unsigned char size);

int main()
{
 int myArr[5] = {1, 1, 2, 3, 5};

 std::cout 

Den size-Übergabewert könnte man übrigens automatisch ermitteln aber das würde ich eher zu fortgeschritten zählen.

Ich vermute aber, dass das nicht jeder Compiler mitmachen wird, und selbst wenn er es macht (wie bei mir), würde ich es anders implementieren, z.B. so:



    
    #include 
    
    int sum(int \*arr\_ptr, unsigned char size);
    
    int main()
    {
     int myArr[5] = {1, 1, 2, 3, 5};
    
     std::cout 
    
    Wenn du das nicht verstehst, ist das eine gute Gelegenheit, sich mit Pointer-Arithmetik auseinander zu setzen :smiley:
    
    Spätestens wenn du ein Array "zurück geben" möchtest, brauchst du die Methode aus dem zweiten Beispiel, weil man ein Array nicht direkt zurück geben kann, es sei denn man baut sich eine Struktur oder eine Klasse, die ein Array beinhaltet (aber das ist meiner Meinung nach auch schon fortgeschrittener).
    
    Deshalb müsste man es eher so machen:
    
    
    
        
        #include 
        
        
        void createArr(int \*arr\_ptr, unsigned char size);
        
        int main()
        {
         int myArr[5];
        
         createArr(&myArr[0], 5);
         for (int i=0; i
        
        Ich hoffe, dass ich helfen konnte.

Kann man ein array auch als rückgabewert benutzen bzw. welche
möglichkeiten gibt es da (Beispiel) ???

Die Frage ist eigentlich mehr, welches Problem es zu lösen gilt und welche Randbedingungen beachtet werden müssen. Und entsprechend wählt man dann die passende Art der Übergabe.

Ggf. gibt es gleiche Arten mit unterschiedlicher Notation, aber im Grunde liegt der Unterschied darin begründet, wie aufrufende und aufgerufene Funktion den Speicherplatz für die Information handhaben.
In den meisten Fällen ist das bloße Austausch einer Speicheradresse durch Call-by-Reference die sinnvollste Wahl.

Wenn man etwas Programmiererfahrung hat solche man sich mal schlau dazu machen, wie die Übergabe von Parametern und Rückgabewert und die Speicherverwaltung für Funktionen technisch erfolgt.

Ciao, Allesquatsch

Hallo,

Kann man ein array auch als rückgabewert benutzen bzw. welche
möglichkeiten gibt es da (Beispiel) ???

Wie groß ist das Array? Wieviele Dimensionen?
Soll das C oder C++ werden?

Grüße

CMБ