放送法の緑の紙に白黒テレビがあるのは全く無駄だと思ってたんだけど、沖縄にはあるらしいよ。っていう話を聞いた。二ヶ月くらい前。
初心者な質問ですいません。キューについて教えてください。
キューについて考える。
組み込みで使うのを想定しておく。mallocは使わない。最初に最大サイズが決まってて、それ以上はどうでもいい。ものとする。
struct q { char *buf; int buflen; int head; int tail; }; void init( struct q *q, char *buf, int len ) { q->head = 0; q->tail = 0; q->buf = buf; q->buflen = len; } void push( struct q *q, char c ) { if ( q->head == (tail-1) ) { /* 知らない */ return; } /* ... 端っこの処理とか ... */ q->buf[q->head] = c; q->head++; } int pop( struct q *q ) { int ret; if ( q->head == q->tail ) return -1 /* ... 端っこの処理とか ... */ ret = q->buf[q->tail]; q->tail++; return ret; }
こんな感じ。よゆーだなー、と思ってやってたんだけど、このやりかただと、じみーな問題がある。バッファのサイズ分使えないのだ。
char buf[5]; init( &q, buf, 5 ); /* これだと四個までしか入れられない… */
はたして、これを簡単に解決する方法はあるだろうか。
■
と、思ったけど、あんまり面白くないな。
最近方向性がわからなくなってきてるのでちょっと休む。