да, вы можете сделать это, используя динамическую память.
у вас будет что-то вроде:
void fillMatrix(double** mat, int rows, int cols) {
int i,j;
printf("Enter the %d matrix elements:\n",rows*cols);
for(i=0;i<rows;i++)
{
for(j=0;j<cols;j++)
{
scanf("%lf",&mat[i][j]);
}
}
printf("\n");
}
где double ** mat - вектор векторов, которые вам нужно будет запросить в памяти, используя malloc для строк и malloc для столбцов.