Ciao ho svolto questo esercizio di file in c e mi da i seguenti errori:

too few arguments to function `bool crea_vett_ind(int, const int (*)[20], int&, coordinate*, int&)'

at this point in file

Premetto che programmo da poco e mi scuso per errori grossolani
Questo è il testo dell'esrecizio:

Sia data una matrice quadrata di interi M memorizzata in un file di testo (mat.txt), che contiene nella prima riga il valore del riempimento di riga e colonna (riemp) e nelle successive gli elementi della matrice (come illustrato negli esempi che seguono).
Si progettino tre funzioni:
- leggi_mat, che legge da file il riempimento ed i valori di una matrice quadrata di interi;
- crea_vett_ind che riceve in ingresso il riempimento (riemp) ed i valori di una matrice quadrata di interi M ed un ulteriore valore intero K, e costruisce un vettore di strutture, vett_ind. Ciascuna struttura è composta da due campi entrambi di tipo intero, rig e col; ciascun elemento del vettore di strutture conterrà allora gli indici di riga e di colonna degli elementi di M il cui valore è maggiore di K. La funzione crea_vett_ind dovrà anche restituire un valore di ritorno booleano, che sarà pari a true se il vettore di strutture contiene almeno un elemento e false altrimenti (questo caso si verifica se non ci sono elementi di M maggiori di K);
- salva_vett_ind, con la quale stampare su file di testo un vettore di strutture;
e si scriva un programma che, utilizzando queste tre funzioni, legga riemp, M (dal file mat.txt) e K (da tastiera), provveda a costruire il vettore vett_ind e, usando opportunamente il valore booleano restituito dalla funzione crea_vett_ind, stampi il vettore vett_ind su file (output.txt) oppure stampi un opportuno messaggio di errore a video se il vettore vett_ind non contiene nessun elemento.

Il programma dovrà essere suddiviso in moduli, uno contenente prototipi e dichiarazioni, uno contenente le funzioni leggi_mat, crea_vett_ind e salva_vett_ind ed un terzo contenente il main


Il codice da me steso è il seguente

codice:
const int max=20;
typedef int matrice[max][max];

struct coordinate
{
       int rig;
       int col;
};

typedef coordinate vettore[max];

void leggi_mat(const matrice, int &, const char*);
bool crea_vett_ind(int, const matrice, int &, vettore, int&);
void salva_vett_ind(vettore, int, const char*);
codice:
#include <iostream>
#include "lib.h"

using namespace std;

int main()
{
    matrice mat;
    int riemp, riemp_vs, k;
    vettore vs;
  bool trovato;
    
    leggi_mat(mat, riemp, "input.txt");
   crea_vett_ind(riemp, mat, k, vs, riemp_vs);
    
    if(crea_vett_ind()==true)
    {
       cout<<"esiste almeno un valore in vs"<<endl;
       salva_vett_ind(vs, riemp_vs, "output.txt");
    }   
    else
       cout<<"non esiste alcun elemento di vs maggiore di k da te inserito"<<endl;                   
    
    
    
 system("PAUSE");
 return 0;
}
codice:
#include <iostream>
#include "lib.h"

using namespace std;

void leggi_mat(const matrice mat, int &riemp, const char *nomefile)
{
  int i,j;
  FILE* fp_in=fopen("input.txt", "r");
  
  if(!fp_in)
  {
         cout<<"file non trovato"<<endl;
         system("PAUSE");
         exit(1);
  }
  
  fscanf(fp_in, "%d", &riemp);
  
  for(i=0;i<riemp;i++)
                      for(j=0;j<riemp;j++)
                                          fscanf(fp_in, "%d", &riemp);
                                          
  fclose(fp_in);                                        
}

bool crea_vett_ind(int riemp, const matrice mat, int &k, vettore vs, int &riemp_vs)
{
     int i,j;
     bool trovato=false;
     
     cout<<"inserire valore di confronto per gli elementi della matrice"<<endl;
     cin>>k;
     
     for(i=0;i<riemp;i++)
     {
                         for(j=0;j<riemp;j++)
                         {
                                                                      
                                             if(k == mat[i][j])
                                                  {
                                                               vs[riemp_vs].rig=i;
                                                               vs[riemp_vs].col=j;
                                                               trovato=true;
                                                               riemp_vs++;
                                                  }
                                                  
                        }     
     }
                        
return trovato;
   
}

void salva_vett_ind(vettore vs, int riemp_vs, const char *filename)
{
     int i;
     FILE* fp_out=fopen("output.txt", "w");
     
     if(!fp_out)
     {
                cout<<"file non trovato"<<endl;
                system("PAUSE");
                exit(1);
     }           
     
    
     
     for(i=0;i<riemp_vs;i++)
     {
       fprintf(fp_out, "%d", vs[i].rig);
       fprintf(fp_out, "%d", vs[i].col);
                            
                            
     }
     
  fclose(fp_out);   
}