Call by Reference - [Warning] incompatible pointer type
-
Hallo Freunde der Zeiger,
ich habe folgendes kleine Programm programmiert:
#include <stdio.h> #include <stdlib.h> void Funktion(char *String) { char hallo[]={"hallo"}; sprintf(String,"%s",hallo); } int main(void) { char Wort[400]; Funktion(&Wort); printf("%s\n",Wort); system("PAUSE"); return 0; }
Das Problem ist, dass beim Kompilieren die Warnung "[Warning] passing arg 1 of `Funktion' from incompatible pointer type" kommt. Wenn ich den Funktionsaufruf so abändere, wie unten, kommt keine Warnung:
Funktion(&Wort[0]);
Bei scanf geht es aber doch auch ohne Warnung:
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { char Wort[400]; scanf("%s",&Wort); printf("%s\n",Wort); system("PAUSE"); return 0; }
Vielen Dank für eure Hilfe,
Felix
-
Es muss
Funktion(Wort);
heißen, da der Name eines Arrays ein Zeiger auf des erste Element ist.
(Wort ist gleichbedeutend mit &Wort[0]}mfg, loose
-
Danke für die Antwort. Ich habe wohl zu kompliziert gedacht.