c-lang:自己参照構造体
構造体の要素に自分自身の構造体を参照しているものが含まれる構造体のこと。
リスト構造などを作るときに使用される。
code:cpp
typedef struct _buff{
_buff *next;
int buff;
} Buff;
void
moe_moe( void)
{
FILE *fp;
int i;
int cnt=0;
Buff *start;
Buff **work = &start;
/* データファイルをオープン */
fp = fopen( "data","r");
/* xxx サンプルのためエラーチェックは省略 */
/* 全データ読込み */
while( fscanf( fp, "%d",&i) != EOF) {
/* 読込んだデータ数をカウント */
cnt++;
*work = malloc( sizeof(Buff));
/* xxx サンプルのためエラーチェックは省略 */
(*work)->buff = i;
work = &(*work)->next;
}
/* 読込んだデータの確認 */
work = &start;
for( i = 0; i < cnt; i++) {
printf("%d\n", (*work)->buff);
work = &(*work)->next;
}
}