It depends if you want a pointer or not.
It’s better to call your structure like this :
typedef struct s_data
{
int a;
char *b;
// etc..
} t_data;
After to instanciate it for a no-pointer structure :
t_data my_struct;
my_struct.a = 8;
And if you want a pointer you need to malloc it like that :
t_data *my_struct;
my_struct = malloc(sizeof(t_data));
my_struct->a = 8
I hope this answers your question.