Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

C++ Rückgabe von Feldern bei Funktionen

Hi Leuts,

hab ein kleines Problem bei der C-Programmierung. Beim schrieben von einer Funktion: Wie schaffe ich es, dass mir die Funktion keinen einzelwert ausgibt, sondern ein feld (array??). Compiler meldet, das er es nicht konvertieren kann.
 Ciao Sterni
p.s. Dank im Vorraus.


Antworten zu C++ Rückgabe von Feldern bei Funktionen:

Hallo

Vielleicht sieht man es besser an einem Beispiel, darum habe ich schnell ein ober dämliches Programm  ::) programmiert!

Gruss  


PS: Das cin >> b; habe ich nur reingemacht, damit das Fenster offen bleibt, falls du mit Windows programmierst!
Beim cout das 0 natürlich in eckigen Klammern! Es wird hier leider falsch dargestellt!


#include <iostream>

using namespace std;

int* test(int* a);


int main()
{
int* a;
int sepp[10];
a = test(sepp);
int b;
cout << a(0) << endl;
cout << a[9];
cin >> b;
}

int* test(int* sepp)
{
    for(int i = 0; i < 10; i++)
        sepp = i;
    return(sepp);
}

« Letzte Änderung: 05.01.04, 14:39:11 von Sebi »

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

int* test(int* sepp)
{
    for(int i = 0; i < 10; i++)
        sepp = i;
    return(sepp);
}

also hier würde ich aufpassen i < 10 würd ich abraten mach mehr i < GroesseVonArray;i++)
(Gut ist hier ned tragisch aber sagt über den programmierstil was aus  ;D)

deine funktionen sind richtig und die antwort auf deine frage:
der pointer a hat die adresse vom ersten element gespeichert mit a++ kommst du immer auf das nächste element im array
jedoch arbeitest du mit zeigern das heisst du veränderst den original wert indirekt
versuch mal: cout << sepp[ 0 ] << endl;
du wirst sehen sepp[ 0 ] hat nun den wert 0
a[ 0 ] und a[9] sind unzulässig da es ein pointer ist und kein array wie schon gesagt kannst du mittels a++ oder ++a auf das nächstliegende element zugreifen im array sepp

ich hoffe du kannst meinen mischmasch verstehen ;D

« Letzte Änderung: 06.01.04, 23:51:20 von void »

Ja da hast du recht, man müsste das mit ArrayGrösse machen, war ja auch nur ein Beispiel ;).
Das stimmt, wenn man mit Zeigern arbeitet muss man aufpassen aber vielleicht ist das ja auch gewollt dass sich die Originalwerte verändern. Vorher stand ja noch nichts definiertes im Array sepp!
Ich bin mir aber sicher dass a[ 0] und a[9] zulässig sind, denn Arrays werden intern wie Pointer behandelt! ;)

« Letzte Änderung: 07.01.04, 09:37:52 von Sebi »

Danke Jungs! Hier habt echt geholfen.

Bitte jederzeit wieder. Dann war das Beispiel doch nicht so schlecht?  :)


« C :Bitte brauch dringend hilfe bei dieser aufgabe!!!!daten von userform in tabelle einfügen »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Compiler
Als Compiler bezeichnet man ein Programm zum Übersetzen der Quellprogramme einer bestimmten Programmiersprache in ausführbare Dateien, also in die Maschinenspra...

Internet-Zugriffsprogramm
Ein Internet-Zugriffsprogramm, auch Browser genannt, stellt Internetseiten für den Benutzer dar. Am bekanntesten ist der Microsoft Internet Explorer, gefolgt vom kos...

Programm
Siehe Software...