How to create a new instance of a struct

后端 未结 3 461
独厮守ぢ
独厮守ぢ 2021-01-01 16:50

What is the correct way to create a new instance of a struct? Given the struct:

struct listitem {
    int val;
    char * def;
    struct listitem * next;
};
         


        
3条回答
  •  旧巷少年郎
    2021-01-01 17:27

    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.

提交回复
热议问题