fehler beim kompilieren void g(*p) (anfänger, einfaches problem)
-
Hallo,
hab in der schule eine aufgabe bekommen, sieht eigentlich ganz leicht aus, aber es scheitert leider schon am compilieren

der fehler kommt bei void g(*p). Dachte ich mir, gut mache ich int g(*p) draus, aber dann wird p immer noch nicht erkannt.
Ich bin noch Anfänger, wäre gut, wenn ihr einen Tipp hättet!
Hier die Aufgabe (nein, ich will ja nicht die lösung, sondern nur wissen wie man es kompiliert)
Aufgabe 1 (Punkte: 5)
Welche Werte stehen in der Variablen n an den 5 im Programm mit // ***
n= gekennzeichneten Stellen. Es soll immer die jeweils fur diesen Block gultige
Variable n ausgewertet werden.
#include <iostream>
using namespace std;
int n = 3;
int f(int n) {
n++;
// *** n=
if (n > 2)
n = n << 2;
//*** n=
return n;
}
void g(*p) {
(*p)--;
n += 5;
// *** n=
return n;
1
}
int main () {
int n = 7;
int k = f(n);
//*** n=
g(&n);
//*** n=
return 0;
}schonmal vielen dank und noch einen schönen Sonntag !

-
Ich habe
jetzt
keine
un-
mittelbare
Lösung
für
Dein Pro-
blem anzu-
bieten. Ab-
er evtl.
rückst du
bess-
er mal dei-
n Code
ein biss-
chen ein
und machst
Di-
r ged-
anken d-
arüber was
*p für ei-
nen Typ hat
wenn d-
u schrei-
bst int
f(*p) {}
MfG
Mi-
chael
-
*smile*,
son eingerückter code hat was...............:xmas1: :xmas2:
-
entschuldigung, kam vom kopieren.
#include <iostream> using namespace std; int n = 3; int f(int n) { n++; // *** n= if (n > 2) n = n << 2; //*** n= return n; } void g(*p) { (*p)--; n += 5; // *** n= return n; } int main () { int n = 7; int k = f(n); //*** n= g(&n); //*** n= return 0; }
-
void g(*p) { ... }Wie gesagt, was soll das bedeuten? Willst du der Funktion einen Zeiger auf ein int übergeben? Dann musst du natürlich
void g(int *p) { ... }schreiben. Ansonsten hast du einen Zeiger auf... ja auf was eigentlich?
Grüße,
Michael
-
das weiß ich ja selbst nicht, was es bedeuten soll. es war so vorgegeben. evt. ein fehler in der vorlage.
vielen dank für deine hilfe und noch einens chönen sonntag!
-
Decimad schrieb:
Ich habe
jetzt
keine
un-
mittelbare
Lösung
für
Dein Pro-
blem anzu-
bieten. Ab-
...
...
Also mach mal aus der Zeilevoid g(*p) {folgendes :
int g(int *p)Wie Decimad schon erwähnte, dein Zeiger zeigt eig. auf, naja, nichts. Und da du was zurückgeben willst, musst du die Funktion mit dem Rückgabetyp "int" definieren. Würde "void" da stehen, könnte man einzigst und alleine nur
return;schreiben. Außerdem verstehe ich den Sinn der Variable "n" nicht. Du übergibst "n" ein paar Mal aus der "main()" heraus und hast aber noch eine globale Variable "n". Komischer und schlechter Code.
Mit freundlichen Grüßen : FreakY :xmas1: