コード整理

ただの自己参照構造体だと append(最後にnodeを追加)メソッドで毎回リストを辿るか、
node をアクロバティックに持ちまわる事になりかねないので、node の構造体を独立させてみました。

typedef struct jpeg_segment_node_ {
    int marker;
    unsigned char *data_ref; /* do NOT free */
    unsigned int data_len;
    struct jpeg_segment_node_ *next;
} jpeg_segment_node_t;

typedef struct jpeg_segment_ {
    jpeg_segment_node_t *head, *tail;
} jpeg_segment_t;

こんな感じで。

http://diary.awm.jp/~yoya/data/2008/04/16/jpeg.2/

コンパイル方法も実行結果も同じなので略…