MemArea
(0)
(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; } } |