Написав однозв'язний список. Чи оптимально я виділив пам'ять?
typedef struct node {
int number;
char *name;
struct node *next;
} node;
node *init(int a, char *g)
{
node *temp = (node *) malloc(sizeof(int) + sizeof(node *));
temp->name = (char *) malloc(sizeof(g));
temp->number = a;
for(int i = 0; g[i] != '\n'; i++)
temp->name[i] = g[i];
temp->next = NULL;
return (temp);
}
void pop(node **h)
{
node *temp = (*h)->next;
if(*h) free(*h);
(*h) = temp;
return;
}
sizeof(struct node) можно писать, чтобы не перечислять все элементы структуры, или просто имя типа в тайпдефе
typedef struct s_node
{
//whatever
} t_node;
для такого обьявления структуры - sizeof(t_node)