def vec_init_2d(v, el_type, s0, s1): vec_init_2d_el_size(v, sizeof(el_type), s0, s1) vec_init_2d_el_size(vec *v, ssize_t el_size, ssize_t s0, ssize_t s1): vec_init(v, vec, s0) # can't alloc together with malloc :( repeat(s0): vec *v1 = vec_push(v) vec_init_el_size(v1, el_size, s1)