Brauche Hilfe bei Pointer
-
Hey Leute ich versuche mich gerade an Pointern und möchte eine Funktion swap erstellen welche den Inhalt bzw die Variablen austauscht.
Leider kommt immer die selbe Fehlermeldung und zwar: invalid conversion from int to int* .
Kann mir jemand erklären was genau diese Fehlermeldung bedeutet bzw was ich falsch gemacht habe ?Hier mein Code:
#include <iostream>
using namespace std;
void swap1 (int* pa, int* pb)
{
int tmp;
tmp=*pa;
*pa=*pb;
*pb=tmp;
}void swap2 (int &a, int &b) //Vertauscht Inhalt der beiden Variablen
{
int tmp;
tmp=a;
a=b;
b=tmp;
}
int main()
{ int x=2, y=5;cout << x << " " << y << endl;
swap1(x,y);
cout << x << " " << y << endl;return 0;
}
-
Übergibst du pointer an deine Funktion?
-
juhuuu schrieb:
invalid conversion from int to int* .
Kann mir jemand erklären was genau diese Fehlermeldung bedeutet bzw was ich falsch gemacht habe ?Die Funktion erwartet Adressen (vom Typ
int*) als Parameter. Du versuchst sie aber mit etwas anderem aufzurufen (int). Es gibt auch keine implizite Umwandlung vonintnachint*, was den Aufruf funktionieren lassen würde.Was Dir fehlt, ist der Adress-Operator.
xundysindint-Variablen. Sie beziehen sich auf Speicherstellen, wo ein Wert vom Typinthinterlegt ist.&xund&ysind Werte vom Typint*, die die Speicheradressen vonxundyrepräsentieren. Variablen, die Adressen speichern, nennen wir Zeiger.