【C言語】
C99仕様の構造体定義と初期化

構造体を初期化する方法は
新しいC言語の仕様C99だと
分かりやすい


■構造体枠の宣言

typedef struct 個人情報 {
    char    *住所;
    char    *氏名;
    int     年齢;
}   個人情報 ;

■C99仕様で書いた構造体の定義と初期化

static  個人情報  一覧[] = {
    [0] ={"北海道", "山田太郎",20},
    [1] ={"東京",   "鈴木次郎",31},
    [2] ={"沖縄",   "佐藤三郎",42},
    [3] ={NULL,NULL,0}  //番兵
};

■構造体メンバ表示関数

static  void 個人情報表示(個人情報 *p){
    printf("%s\t",p->住所);
    printf("%s\t",p->氏名);
    printf("%d\n",p->年齢);
}

■コンパイル可能な全ソース

#include <stdio.h>
//構造体の宣言
typedef struct 個人情報 {
    char    *住所;
    char    *氏名;
    int     年齢;
}   個人情報 ;

//構造体の定義と初期化
static  個人情報  一覧[] = {
    [0] ={"北海道", "山田太郎",20},
    [1] ={"東京",   "鈴木次郎",31},
    [2] ={"沖縄",   "佐藤三郎",42},
    [3] ={NULL,NULL,0}  //番兵
};

//ポインタを使った構造体のメンバ表示
static  void 個人情報表示(個人情報 *p){
    printf("%s\t",p->住所);
    printf("%s\t",p->氏名);
    printf("%d\n",p->年齢);
}

int     main(void){
    for(int i = 0 ; 一覧[i].氏名 != NULL ;i++){
        個人情報表示(&一覧[i]);
    }
}

コンパイル&実行して
動作を確認してみてください。