Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

franz-21

Treue Seele

  • »franz-21« ist der Autor dieses Themas

Beiträge: 101

Wohnort: Bayern

Beruf: Schüler

  • Private Nachricht senden

1

19.01.2010, 18:06

Array als Pointer einer Funktion übergeben

Hallo Leute!

Hoffe das mir jemand weiterhelfen kann. Möchte alle Var's als Pointer übergeben aber will beim Array nicht funktionieren. Auch bei cin>>Noten; bockt die Entwicklungsumgebung herum. Was habe ich falsch gemacht?

Muss dazusagen das ich Programmieranfänger bin :oops:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include<conio.h>
#include<iostream>

using namespace std;


void Eingabe(int *Schüler, int *Noten[]){
    int i=0;

    cout<<"Bitte geben Sie die Schueleranzahl ein: ";
    cin>>Schüler;
    cout<<"\n\n";

    while(i<Schüler){
        cout<<"Bitte geben Sie die Note des "<<i+1<<" Schuelers ein: ";
        cin>>Noten[i];
        i++;
        }
}
        

int main(){
    int Schüler=0; 
    float Schnitt=0;
    int Noten[36];

    Eingabe(&Schüler, &Noten);
    return 0;
}

idontknow

unregistriert

2

19.01.2010, 18:14

Erstmal: kein a/ü/ö/ß ect. verwenden :).
Unten ist der Code wie er kompiliert wird!

Waren hauptsächlich dereferenzierungsfehler bzw du hattest keine und deine Array Dekalration war ziemlich merkwürdig^^

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <string>

using namespace std;

void Eingabe(int *Schueler, int Noten[]){
    int i=0;
    cout<<"Bitte geben Sie die Schueleranzahl ein: ";
    cin>>*Schueler;
    cout<<"\n\n";

    while(i<*Schueler){
        cout<<"Bitte geben Sie die Note des "<<i+1<<" Schuelers ein: ";
        cin>>Noten[i];
        i++;
        }
}
       

int main(){
    int Schueler=0;
    float Schnitt=0;
    int Noten[36];

    Eingabe(&Schueler, Noten);
    return 0;
} 

3

19.01.2010, 18:15

C-/C++-Quelltext

1
void Eingabe(int *Schüler, int *Noten[]){ 


sollte zu

C-/C++-Quelltext

1
void Eingabe(int *Schüler, int *Noten){ 
, oder ?

idontknow

unregistriert

4

19.01.2010, 18:18

geht auch, so wie oben in meienm Code gehts aber auch ^^
Naja kA Arrays in Parametern mit [] deklariert sind afaik schon zur Compilzeit bekannt, also deren größe. Bin mir aber nicht sicher!

5

19.01.2010, 18:19

Zitat von »"idontkonw"«

geht auch, so wie oben in meienm Code gehts aber auch ^^


Hab eigentlich deinen Code gar nicht gemeint. Hab deinen Post beim Schreiben gar nicht gesehen ;)

franz-21

Treue Seele

  • »franz-21« ist der Autor dieses Themas

Beiträge: 101

Wohnort: Bayern

Beruf: Schüler

  • Private Nachricht senden

6

19.01.2010, 18:21

Danke euch beiden!!!

Hab noch eine Frage :D

Was ist ein Dereferenzierungsfehler??



mfg

idontknow

unregistriert

7

19.01.2010, 18:27

Naja

C-/C++-Quelltext

1
int *blub = 0; // Pointer!


Willst du jetzt den Wert, musst du dereferenzieren sprich:

C-/C++-Quelltext

1
*blub = 1337;


Und wenn du das nicht machst gibts einen Dereferenzierungsfehler, jetzt mal ganz grob. WObei es da nichtmal einen Feher gibt^^. Dennoch wäre es falsch.

SOll dir lieber ein Pro erklären bevor ich dich verwirre^^

franz-21

Treue Seele

  • »franz-21« ist der Autor dieses Themas

Beiträge: 101

Wohnort: Bayern

Beruf: Schüler

  • Private Nachricht senden

8

19.01.2010, 18:29

Ok, thx

idontknow

unregistriert

9

19.01.2010, 18:30

Ahh sorry ich meine wenn du das "*" weglasen würdest, dann würdest du die Adresse des Pointers ändern nicht den Wert. Ist bei Arrays im Prinzip das selbe.[/cpp]

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

10

19.01.2010, 18:53

http://www.c-plusplus.de/forum/viewtopic-var-t-is-259145.html

Werbeanzeige