#include <stdio.h>
struct tagData{
tagData *pBefore; // 逆ポインタ
tagData *pNext; // 順ポインタ
int nXPos; // X座標
int nYPos; // Y座標
};
tagData *g_pHead = NULL; // 先頭
tagData *g_pTail = NULL; // 最後尾
void Print(void);
void main(void)
{
// メモリを確保
tagData data[3];
data[0].nXPos = 100;
data[0].nYPos = 110;
data[1].nXPos = 200;
data[1].nYPos = 210;
data[2].nXPos = 300;
data[2].nYPos = 310;
// チェインでつなぐ
g_pHead = &data[0];
data[0].pBefore = NULL;
data[0].pNext = &data[1];
data[1].pBefore = &data[0];
data[1].pNext = &data[2];
data[2].pBefore = &data[1];
data[2].pNext = NULL;
g_pTail = &data[2];
Print(); // ディスプレイに表示
}
// ディスプレイに表示
// 引数、戻値 : なし
void Print(void)
{
tagData *p = g_pHead;
while(p != NULL)
{
printf("x = %d y = %d\n", p->nXPos, p->nYPos);
p = p->pNext;
}
}
|