Forum: Mikrocontroller und Digitale Elektronik Problem " incompatiple pointer Type


von Andreas (Gast)


Lesenswert?

Der Comipler meckert beim 2. Argument der Funktion



meine Funktionsdeclaration :

void l_sch_set(l_icf_handle iii,L_SDEF *l_schedule_def_api, l_u8 epoint)
{

...

}

mein Aufruf
l_sch_set(L_ICF_0 ,&ScheduleT1, l_aktFrame):+

Die Definition von ScheduleT1:


L_SDEF ScheduleT1[]
{
...
...
...
}

Wer weis abhilfe ?

von Andreas (Gast)


Lesenswert?

Das " & " beim Funktionsaufruf ist zu viel stimmst ?
Bei einem  Array ist der Name = Adresse

von Rolf Magnus (Gast)


Lesenswert?

Das Problem ist, daß die Funktion einen Zeiger auf ein L_SDEF will, du 
aber einen Zeiger auf ein Array aus L_SDEF übergibst. Du willst 
vermutlich einen Zeiger auf das erste Element, also:

    &ScheduleT1[0]

oder einfacher:

    ScheduleT1 (ohne das &)

von Oliver (Gast)


Lesenswert?

Ein L_SDEF *  (Pointer auf L_DEF)ist halt was anders als das Ergebnis 
von &L_SDEF ScheduleT1[] (Pointer auf Array von L_DEF).

Wenn du ein Array übergeben willst, dann schreib es doch einfach hin:

void l_sch_set(l_icf_handle iii,L_SDEF l_schedule_def_api[], l_u8 
epoint)
{...}

Der Aufruf dazu:
l_sch_set(L_ICF_0 ,ScheduleT1, l_aktFrame);

Oliver


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.