Я не уверен, что понял концепцию typedef ... Скажем, есть два разных способа реализации узлов: один использует typedef, а другой не использует typedef.
Например:
Существует узел, который был реализован следующим образом: где файл с именем node1.c выглядит следующим образом:
struct node_int {
int value;
node next;
};
void init_node(node *n, int value) {
node new_node = (node)malloc(sizeof(struct node_int));
//some code for initializing
}
и в node1.h , который выглядит следующим образом:
struct node_int;
typedef struct node_int *node;
и есть узел, который был реализован следующим образом: где файл с именем node2.c выглядит следующим образом:
struct node_int {
int value;
struct node *next;
};
void init_node(node_int **n, int value) {
struct node_int* new_node = (struct node_int*)malloc(sizeof(struct node_int));
//some code for initializing
}
и в node2.h , который выглядит следующим образом:
struct node_int;
Эти две реализации эквивалентны? и правильно ли используется malloc в каждом случае?
Любое просвещение будет оценено.