Allora ragazzi ho realizzato questo programma che praticamente una volta inseriti in input nome e cognome di una persona mi stampa il suo relativo codice fiscale. Il problema è che mi da un errore strano che non si riferisce a nessuno stringa in particolare ovvero:

/tmp/ccERH8OQ.o: In function `main':
main.cpp.text+0x5c): undefined reference to `stampacodice(dati*)'
collect2: error: ld returned 1 exit status

Di seguito vi riporto il codice:

codice:
#include <iostream>
#include <string.h>


using namespace std;


struct dati
{
    string nome;
    string cognome;
    string codicef;
    string comune;
};


void caricadati(int &n,struct dati persone[]);
void stampacodice(struct dati persone[]);


int main()
{
    int n;
    struct dati persone[100];
    
    caricadati(n,persone);
    stampacodice(persone);
    return 0;
}


void caricadati(int &n,struct dati persone[])
{
    int i;
    cout<<"Di quante persone vuoi inserire i dati? ";
    cin>>n;
    
    for(i=0;i<n;i++)
    {
        cout<<"Inserire nome: ";
        cin>>persone[i].nome;
        cout<<"Inserire cognome: ";
        cin>>persone[i].cognome;
        cout<<"Inserire codice fiscale: ";
        cin>>persone[i].codicef;
        cout<<"Inserire comune residenza: ";
        cin>>persone[i].comune;
    }
}


void stampacodice(struct dati persone[],int n)
{
    int i,esci;
    esci=0; 
    i=0;
    string nome,cognome;
    
    cout<<"Inserire nome della persona che vuoi sapere il codice fiscale ";
    cin>>nome;
    cout<<"Inserire cognome della persona che vuoi sapere il codice fiscale ";
    cin>>cognome;
    
    while( i < n && esci == 0  )
    {
        if(persone[i].nome == nome)
        {
          cout<<"Il codice fiscale della persona e': "<<persone[i].codicef;
          esci=1;
        }
        else 
        i = i + 1;
   }
}
Non ho la più pallida idea da cosa derivi quest'errore, se potreste darmi una mano ne sarei grato.
Grazie in anticipo, Scary-