Forum: Compiler & IDEs warning: passing argument 1 of 'function' from incompatible pointer type


von Gregor B. (gregor54321)


Lesenswert?

Hallo Gemeinde!

Als noch eher Anfänger in Sachen C mache ich hier irgend etwas falsch:
1
int main (void) {
2
  char buffer[30];
3
  sprintf(buffer, "Text = %d \r\n",flag_Text);
4
  rf12_txdata(&buffer, 30);
5
}
6
7
void rf12_txdata(unsigned char *data, unsigned char number) {
8
  nop();
9
}
Ich bekomme die Compilermeldung "warning: passing argument 1 of 
'rf12_txdata' from incompatible pointer type".

sprintf verlangt ein char
die rf12_txdata verlangt unsigned char

Aber auch das umschreiben der rf12_txdata auf char bringt mich nicht 
weiter. Wie kann ich die Warnungen entkräften?

Danke für Tipps!
Gregor

von Floh (Gast)


Lesenswert?

Gregor B. schrieb:
> rf12_txdata(&buffer, 30);

buffer ist bereits eine Adresse, das & sollte weg? :-)

von Floh (Gast)


Lesenswert?

meinte natürlich pointer, nicht adresse :-)

von Gregor B. (gregor54321)


Lesenswert?

Das kompiliert! Besten Dank!

von Rolf M. (rmagnus)


Lesenswert?

Nur um das klarzustellen: buffer ist kein Pointer, wird aber bei 
Übergabe an die Funktion in einen konvertiert.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.