>>70
こうか?
エラーチェック追加と、reallocにNULL渡せない場合malloc追加するのやってない。
void push(struct list *p, int e)
{
if (p->n == p->N)
{
list->array = realloc(list->array, sizeof(int) *(p->N + 10));
list->N += 10;
}
list->array[list->n++] = e;
}

void unshift(struct list *p, int e)
{
if (p->n == p->N)
{
list->array = realloc(list->array, sizeof(int) *(p->N + 10));
list->N += 10;
}
memmove(list->array + 1, list->array, sizeof(int) * list->n);
list->array[0] = e;
list->n++;
}