鶏頭のプログラム

Ruby, Javascript, C言語, SQLなどのプログラミング

PList関数でC言語のポインター操作を少しでも楽に

PList関数を作成しました。

tebakane/PointerList · GitHub

どんな関数かというとC言語の配列型です。
いままでサイズを取って領域の確保をおこなって
さらにそのサイズ分だけループを回すということをやっていたのですが
いちいち何個あったのかを記憶するのが面倒なので作成しました。

使い方はいたってシンプルで以下がサンプルです。

#include "pointer_list.h"
#include <stdio.h>
int main(){
        char *val;
        PList *list = InitPList();
        AddPList(list, "HELLO");
        AddPList(list, "WORLD");
        AddPList(list, "WORLD2");
        forlist(val, list){
                printf("%s\n", val);
        }
        val = GetValueIndexPList(list, 1);
        printf("%s\n", val);
        DeletePList(list, 1);
        val = GetValueIndexPList(list, 1);
        printf("%s\n", val);
        FinalPList(list);
        return 0;
}

結果

HELLO
WORLD
WORLD2
WORLD
WORLD2

C言語で配列を扱う際には何個領域を確保してその分だけ保管し、取り出すときは
回数分ループで回すということをおこなわなくてはいけないという事情がありましたので
そういうメモリ関連を頭から除外したい際には有用ではないかと思います。