void insert(List *p, int index, Item value) {
int i;
if (index < 0) return;
add(p,nil);
for (i = size(p)-1; i > index; i--)
set(p, i, get(p, i-1));
set(p, index, value);
}
でどうよ?