Computerhilfen.de Logo
Forum
Tipps
News

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!