C言語なら俺に聞け! Part 62
■ このスレッドは過去ログ倉庫に格納されています
0519デフォルトの名無しさん
NGNG正攻法だと、intを溜めるための構造体を作って、
その構造体を管理する関数群を実装し利用するってことになるかね。
#define UNIT_ALLOCATE 256
typedef struct {
unsigned int *data;
size_t allocated;
size_t end;
} uintarray;
uintarray *ianew(void) {
uintarray *ia = malloc(sizeof(uintarray));
if (!ia) return NULL;
ia->data = NULL; ia->allocated = 0; size_t end = 0;
return ia;
}
uintarray *iaappend(uintarray *ia, unsigned int i) {
if (allocated <= end) {
unsigned int *tmp = ia->data;
ia->data = realloc(ia->data, ia->end + UNIT_ALLOCATE);
if (!ia->data) {
ia->data = tmp;
return NULL;
}
ia->end += UNIT_ALLOCATE;
}
ia->data[ia->end++] = i;
return ia;
}
こんな感じで。行数収めるのにちょっとヘンな表記してるけど。
■ このスレッドは過去ログ倉庫に格納されています