Zeigertypen
-
Hallöchen,
ich als Zeiger-Anfänger sitze gerade vor folgendem Problem:
Ich habe folgende Funktion(en)
double func(double *x, int n){ /*Anweisungen*/ } int main () { int n=3; double a[3]={1,2,3}; func(&a, n); /*Weiterrechnen mit a*/ }
Prinzipiell funktioniert das Programm gut, allerdings erzählt mir gcc folgendes Warnung &Anmerkung:
1.) Übergabe von Arg1 von func "von inkompatiblen Zeigertyp"
2.) "double * erwartet aber Arg hat Typ double (*)[3].Ich habe schon in mein C-Buch/Google geschaut, aber irgendwie übersehe ich etwas... Wie kann ich das Problem lösen?
Danke,
freddy13
-
func(a,n)
'&' weglassen.
-
Der Name eines Arrays steht für dessen Adresse:
a
Man kann auch die Adresse vom ersten Element nehmen:&a[0]
Aber das ist eher unüblich.