/*
配列をリングバッファに見立てて、idをキーに検索を行う。
ただし、何番目の要素から検索を開始するか指定できるようにする。
指定idを見つけたらその要素にdataの値を設定し、その要素へのポインタを返す。
見つからなければNULLを返す。
*/
typedef struct{int id; int data;} item_t;

item_t ring_buffer[1000];

result_t *hoge(int id, int data, int start)
{
  item_t *p_end = ring_buffer + sizeof(ring_buffer)/sizeof(ring_buffer[0]);
  item_t *p_start = ring_buffer + start;
  item_t *p;

  for(p = p_start; p != p_end; ++p)
    if(p->id == id ) goto FOUND;

  for(p = ring_buffer; p != p_start; ++p)
    if(p->id == id ) goto FOUND;

  return NULL;
FOUND:
  p->data = data;
  return p;
}