/* データの型定義 */
typedef struct {
char name[20];
int age;
float weight;
float height;
} DATA;
/* リストノードの型定義(内生的) */
typedef struct node {
DATA data;
struct node *next;
} NODE;
/* リストの先頭を指すポインタ(first)の定義 */
NODE *first_p;
NODE *node_p; /* 例えば挿入に際して、ノードを新規作成する */ node_p = malloc( sizeof(NODE) ); node_p->next = NULL; strcpy( node_p->data.name, "Hiroshi"); node_p->data.age = 20; node_p->data.weight = 60.0; node_p->data.height = 175.0; /* 例えば削除して、不要になったノード領域の解放 */ free( node_p );
/* リストの先頭を指すヘッダ(first)の定義 */ NODE first, *node_p; /* リストの最後に挿入する */ for( node_p = &first; node_p->next != NULL; node_p = node_p->next ) ; node_p->next = malloc( sizeof(NODE) ); node_p->next->next = NULL;
/* データの型定義 */
typedef struct {
char name[20];
int age;
float weight;
float height;
} DATA;
/* リストノードの型定義(外生的) */
typedef struct node {
DATA *data_p;
struct node *next;
} NODE;
/* リストの先頭を指すポインタ(first)の定義 */
NODE *first_p;
NODE *node_p; /* 例えば挿入に際して、ノード・データを新規作成する */ node_p = malloc( sizeof(NODE) ); node_p->data_p = malloc( sizeof(DATA) ); node_p->next = NULL; strcpy( node_p->data_p->name, "Hiroshi"); node_p->data_p->age = 20; node_p->data_p->weight = 60.0; node_p->data_p->height = 175.0; /* 例えば削除して、不要になったノード・データ領域の解放 */ free( node_p->data_p ); free( node_p );
/* リストの先頭を指すヘッダ(first)の定義 */ NODE first, *node_p; /* リストの最後に挿入する */ for( node_p = &first; node_p->next != NULL; node_p = node_p->next ) ; node_p->next = malloc( sizeof(NODE) ); node_p->next->data_p = malloc( sizeof(DATA) ); node_p->next->next = NULL;