Zeiger Funktion Problem
-
Hi ich habe folgendes Problem ich will das mein Programm sobald er die Werte eingelesen hat in die Funktion springt und diese verarbeitet doch sagt er mir immer das pb und pd nicht initialisiert sind könnt ihr mir vll sagen wo mein problem ist?
#include <iostream> #include <iomanip> using namespace std; void input(int *pa,int b,int *pc,int d); //Prototypen der Funktionen void main() { int *pa, b , *pc, d; char eingabe='1'; { cout<<"******************MENUE********************"; cout<<"\n************Funktion waehlen!**************\n"<<endl; //Menue cout<<"1 = Einslesen und Zuweisen!(input)\n"<<endl; cout<<"2 = Werte beider Variablen sowie\n Werte der Zeigervariablen anzeigen (outputValue)\n"<<endl; cout<<"3 = Adresse beider Variablen sowie\n Adresse der Zeigervariablen anzeigen (outputAdress)\n"<<endl; cout<<"4 = Variablen bzw Zeigervariablen vertauschen (swap) \n"<<endl; cout<<"5 = Programm beenden"<<endl; cout<<"******************************************"<<endl; cin>>eingabe; switch(eingabe) { case'1': cout<<"Zahl eingeben"<<endl; cin>>b; cout<<"Zahl eingeben"<<endl; cin>>d; input(pa, b, pc, d); break; } } } void input(int *pa,int b, int *pc,int d) { { pa = &b; pc = &d; } cout<<"***********************************"<<endl; cout<<"Wert der Variablen a: " <<*pa<<endl; cout<<"Adresse der Zeigervariablen a: "<< (void *)pa<<endl; cout<<"***********************************"<<endl; cout<<"Wert der Variablen c: " <<*pc<<endl; cout<<"Adresse der Variablen c: "<< (void *)pc<<endl; cout<<"***********************************"<<endl; }
-
Madness schrieb:
ihr mir vll sagen wo mein problem ist?
int *pa, b , *pc, d;pa und pc sind nicht initialisiert. Änder das mal in:
int *pa = 0, b , *pc = 0, d;
-
jup hat funktioniert vielen dank

-
Gib mal vor dem Aufruf von input() die Adressen der Variablen b und d aus und vergleiche die Werte mit denen von &b und &d in input().