* MemArea
-(by [[K]], 2019.03.06)
** (0)
-名称を「ポインタ&サイズ」の略でpsにすると、たまに使うポインタスロットにかぶってしまうので、略称がmaになるMemAreaにしてみた。
** (1)
typedef struct Kma_ {
char *p;
int s, i, m, u;
} Kma;
void kma_0(Kma *ma, int m)
{
ma->p = malloc(m);
if (ma->p == 0)
kerr("kma_0: out of memory");
ma->s = m;
ma->i = 0;
ma->m = m;
ma->u = 64 * 1024;
}
void kma_t(Kma *ma)
{
if (ma->i + ma->m >= ma->s) {
ma->p = realloc(ma->p, ma->s + ma->u);
if (ma->p == 0)
kerr("kma_t: out of memory");
ma->s += ma->u;
}
}