Pointer Übergabe in mehreren Instanzen von Funktionen
-
Hallo,
ich möchte gerne eine Variable über einen Pointer in eine Funktion übergeben, welche sie nochmals weiter gibt.
Allerdings kommt folgender Fehler:
main.c(3): warning C4024: "ausgabe": unterschiedliche Typen für formalen und übergebenen Parameter 1
So ungefähr soll es aussehen:
void test (int *zahl){ (*zahl)++; ausgabe (&zahl); } void ausgabe(int *wert){ printf("wert = %i", &wert); } int main { int variable = 0; int *pntvar = &variable; test (&pntvar); return 0; }
Kann mir jemand helfen? Habe ich genügend Informationen gegeben?
Viele Grüße
-
ausgabe (zahl);
Der Parameter ist ja schon vom Typ int*.
ausgabe könnte auch folgende Signatur haben,void ausgabe(const int* wert);
da der Wert von wert in dieser Funktion nicht geändert wird bzw. alleine schon aufgrund des Funktionsnamens und der damit verbundenen assoziierten Aufgabe nicht geändert werden sollte.
-
Beim zweiten Kaffee habe ich gerade erst
printf("wert = %i", &wert);
gesehen. Du musst natürlich in diesem Fall den Zeiger dereferenzieren: *wert
Aufruf von test außerdem wie von ausgabe.
test (pntvar);
Oder gleich
test (&variable);
-
Bei einem Pointer darf man nicht Reflexartig den Adressoperator einsetzen.
Die Variable kann ja schon ein Pointer sein.
-
Ok vielen Dank euch!!
Das mitconst ...
ist einleuchtend, das baue ich mal mit ein.mutroni