1 自己参照的構造体

   1.3 メモリの確保
 構造体へのポインタ変数を利用して動的に構造体のデータ用メモリ領域を確保(allocate)するには "malloc" 関数を使います。
#include <stdio.h>
#include <string.h>  /* strcpy */

typedef struct {
  char name[10];       /* 名前 */
  char address[20];    /* 住所 */
  double phone;        /* 電話番号 */
}personal_t;          /* アドレスデータ型の定義 */

int main(void){
  personal_t *pd_p; /* アドレスデータの構造体のポインタ変数の定義 */

  /*** personal_t 型のメモリ領域確保 ***/
  pd_p = (personal_t *) malloc (sizeof(personal_t));

  /*** A-san のデータ設定 ***/
  strcpy(pd_p->name, "A-san");
  strcpy(pd_p->address, "F-city");
  pd_p->phone = 9876543210;

  /*** 各メンバ値の表示 ***/
  printf("名前: %s", pd_p->name);
  printf("住所: %s", pd_p->address);
  printf("電話番号: %.0f", pd_p->phone);
}
メモリの確保のイメージ