(Wrong)> void fill_vector(mpq_t w[][]){ (Right)> void fill_vector(mpq_t w[][2]){ Please refer to, for example, "What methods for passing a 2D array to a subroutine are allowed?" on http://www.ibiblio.org/pub/languages/fortran/append-c.html