Przekazywanie wskaznika struktury do funkcji

0

Cześć!
Uprzejmie proszę o pomoc z następującym zagadnieniem.

Mam zadeklarowane dwie struktury: "przedmiot" oraz "zlozenie", przy czym druga zawiera w sobie struktury pierwszej.

Chciałbym przesłać wskaźnik na strukture "przedmiot" do funkcji.
Funkcja ta tworzy sobie lokana strukture "zlozenie" i pod jedno z jej pol ma skopiowac zawartosc struktury wskazanej wskaznikiem.

Błąd wyrzuca mi w linii "kopiowania"... Co robię źle ?

Urzejmie proszę o pomoc.... googlowałem ale z takim konkretnym przypadkiem się nie spotkałem. Gdy przekazuje nie wskaźnik, a samą strukturę (czyli robie jej kopie) to jest ok.

 
typedef struct przedmiot_struct
{
	float wymiar_x,wymiar_y,wymiar_z;
	float offset_x, offset_y, offset_z;

}przedmiot;

typedef struct zlozenie_struct
{
	przedmiot p_gora,p_srodek,p_dol;
	float cena, czas;
} zlozenie;


bool Przypisz(przedmiot *przedmiot_ptr)
{
	zlozenie temp_zlozenie; //lokalny kontener struktury zlozenie_struct

temp_zlozenie.p_gora = przedmiot_ptr; //skopiowanie do lokalnego kontera.p_gora wskazanej struktury.
//w linii powyzej wyrzuca blad kompilacji ":** error: incompatible types when assigning to type 'przedmiot' from type 'struct przedmiot *'**
	
return true;
}

4

Poczytaj o wskaźnikach. Próbujesz przypisać wskaźnik do obiektu; żeby dokonać kopii pierw musisz dokonać dereferencji za pomocą operatora *:

temp_zlozenie.p_gora = *przedmiot_ptr;

Przy okazji:

  • jeśli to ma być kod C, to ten bool średnio tu pasuje (to nie jest typ wbudowany C, potrzebujesz include'a <stdbool.h>)
  • staraj się poprawnie formatować kod, później znacznie wygodniej się to czyta.
0

Dziękuje bardzo. Faktycznie podstawa, podstaw. Ale mi głupio. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1