Funktionen... (Fehlermeldung)
-
Auf dich kann man zählen..

Hattest wie immer recht! Läuft jetzt..
-
Nun übertreibs nicht. So unfehlbar bin ich bei weitem nicht...

Aber gut, dass es dir geholfen hat.

-
Also vorhin konnte ich immer zwischendurch
prüfen etc. und es lief auch... nur jetzt
gibt's zwar beim Kompilieren keine Meldung,
dafür gibt es einen Absturz des "Dos-Fensters"
nach der ersten Eingabe..
Sowas ist das erste mal (nach ca. 100 kleineren
Progs).
Hab die letzten Änderungen, die ich vornahm rück-
gängig gemacht, jedoch ohne Erfolg. Das Ding läuft
nicht mehr..PS: Die Funktion 'gross' ist noch nicht fertig.
//Titel #include <iostream> using namespace std; void gross(int* Array, int size, int &superb); int main(void) { int i, big, max; int* feld; big=6; for (i=1; i<=6; i++) { cout << "\nBitte " << i <<". Zahl von 6 eingeben: "; cin >> feld[i-1]; } gross(feld, big, max); cout << endl << "Die groesste Zahl, die eingegeben wurde lautet: " << max << "\n\n\n"; system("Pause"); return 0 ; } // Hauptprogramm void gross(int* Array, int size, int &superb) { int j, hilf; hilf=0; for(j=6; j>=1 ;j--) { cout << "\n" << Array[size-j]; //Kontrolle via Ausgabe } superb=hilf; }
-
Hallo, mit
int* feld;legst du nur einen Zeiger auf
intan, kein Array. Der Zeiger ist zudem noch uninitialisiert, zeigt also irgendwo hin. Um dafür Platz zu reservieren, könntest du beispielsweisenewbenutzen.Aber in deinem Falle geht es eher um Arrays. Leg also ein solches an, das genügend gross ist, sodass alle Elemente Platz haben.
int feld[6];
-

Vielen Dank nochmals!
Ich hoffe, dass meine Klausur gut verläuft..Dann lade ich dich und drakon zum Essen ein..
Hoffe, ihr wohnt in der Nähe, sodass ich ein
gutes Restaurant kenne, welches nicht allzu
weit weg von euch ist.
-
Hmm, das könnte schwierig werden, drakon und ich wohnen beide in der Schweiz.

Aber mir reicht es, dass ich dir helfen konnte. Es gibt übrigens sehr wenige Leute, die so viel Dankbarkeit zeigen wie du. Das schätze ich sehr, oft hört man gar nichts oder teilweise sogar blöde Kommentare.
Viel Glück bei deiner Klausur.

-
Nexus schrieb:
Viel Glück bei deiner Klausur.

Merci.. Dir auch 'viel Glück' bei allem, was
du dir vornimmst. Möge Gott dir helfen.Okay, mit der Schweiz hatte ich nicht gerechnet.
Dann muss ich mir was anderes überlegen
Zeit hab ich ja noch.. Zur Klausur sind's noch 2 Wochen.Zurück zu C++.. Wenn ich bis dahin Probleme hab',
melde ich mich... falls du gestattest.Schönen Abend noch bzw. Gute Nacht!
-
Mikrofon schrieb:
Merci.. Dir auch 'viel Glück' bei allem, was
du dir vornimmst. Möge Gott dir helfen.Vielen Dank.

Mikrofon schrieb:
Zurück zu C++.. Wenn ich bis dahin Probleme hab',
melde ich mich... falls du gestattest.Sicher, ja. Ich bin relativ oft hier im Forum, und es gibt ja auch sonst sehr viele Leute, die dir bei Problemen helfen können.

Ich wünsche dir auch eine gute Nacht, machs gut.
-
Nabend allerseits...
Kriege in den Array keine Werte
eingelesen...//Titel #include <iostream> using namespace std; void einlesen(int* feld, int poly); int main() { int p; cout << "\nGrad des Polynoms eingeben: "; cin >> p; cout << "\n\n"; int Array[p]; einlesen(Array,p); system("Pause"); return 0; } void einlesen(int* &feld, int poly) { int i; for (i=1; i<=poly; i++) { cout << "Bitte " << i << ". Wert von " << poly << "eingeben :"; cin >> feld[i-1]; } }Es wird nicht kompiliert.
Ein Fehler in einer bestimmten Zeile
des Quellcodes liegt nicht vor.
Die Fehlermeldung lautet:[Linker error] undefined reference to `einlesen(int*, int)'
ld returned 1 exit statusWenn ich unten das &-Zeichen vor 'feld' entferne, klappt's.
Ich möchte aber, dass die eingegeben Werte an's Haupt-
programm zurückgeliefert werden..PS:
Wenn ich in die Zeile 5 statt feld
-> &feld
eingebe (und unten das & unten auch stehen lasse,
gibt es eine andere Fehlermeldung (Zeile 15):15 invalid initialization of non-const reference of type 'int*&' from a temporary of type 'int*'
-
Du brauchst das & bei der Funktionsdefinition nicht, die Werte werden auch so zurückgeliefert. Das & nach dem zeiger brauchst du nur, wenn du den Zeiger selbst in der Funktion verändern willst.
Ansonsten: Die Funktionsdefinition muss immer mit der deklaration übereinstimmen, sonst bekommst du eben Linkerfehler.
-
DANKE, BRAUNSTEIN....
Nun zu Struct (Strukturen)

Quellcode-Ausschnitt:
. . . cout << "\nKonto 1:\n\n" "Bitte Hausnamen eingeben: "; getline(cin, kunde1.name); cin >> kunde1.konto; cout << "\nBitte Kontostand eingeben: "; cin >> kunde1.geld; cout << "\n\n\nKonto 2:\n\n" "Bitte Hausnamen eingeben: "; getline(cin, kunde2.name); // <<<<<<<<<-------------- cout << "\nBitte Vornamen eingeben: "; getline(cin, kunde2.vorname); cout << "\nBitte Adresse eingeben: "; getline(cin, kunde2.adresse); cout << "\nBitte Kontonummer eingeben: "; cin >> kunde2.konto; cout << "\nBitte Kontostand eingeben: "; cin >> kunde2.geld; . . . .Die markierte Eingabe wird übersprungen..
Alle anderen Einlese-Befehle sind ok.
In einem anderen Programm hatte ich das
gleiche Problem. Manchmal wird der Befehl
getline(cin, x) nicht ausgeführt..Was mache ich falsch? Einer unserer Fachleute
wird es bestimmt wissen...
-
Du solltest nicht unformatierte (
std::getline()) mit formatierter (operator>>) Eingabe vermischen.Siehe dazu diesen Thread, besonders 7H3 N4C3Rs Beitrag auf der zweiten Seite.