Om du definierat en struct så är nästa steg att du skapar en instans av den structen. C hanterar automatiskt att skicka structar "by value" annars kan du skicka som pekare.
Se på t.ex.
https://compilr.com/mounte/passing-struct/HelloWorld.c
Valet att skicka som pekare beror lite på prestanda och vad du behöver kunna göra.
I exemplet jag skrev så behöver datorn skyffla 24 bytes då man skickar som värde (by value) vid varje funktionsanrop och retur, funktionen modify_struct_byval kommer resultera i att 48B data skyfflas (utöver den data som faktiskt skrivs till structen som totalt är 24B också. Jämför med modify_struct_byp som använder pekare, inget behöver returneras och pekarens storlek på denna platformen var 8B, så totalt skyfflas 1/6 av datat bara men samma funktion uppnås.