ciao a tutti!
sto tendando di scrivere un programma che mi permetta di gestire una rubrica.. qnd tento di compilare però il dev mi da questo errore:conversion from `rubrica*' to non-scalar type `rubrica' requested nel main quando scrivo le funzioni. qualcuno mi può dare una mano??

MAIN
codice:
#include <cstdlib> 
#include <iostream> 
#include "header.h" 
using namespace std; 
int main(int argc, char *argv[]) {     
int scelta, r;     
rubrica c[50];         

 while(scelta!=0){                      
                        cout<<endl<<"\tRubrica"<<endl;                      
cout<<"1)Inserisci Nuovo Contatto."<<endl;                    
cout<<"2)Modifica Contatto."<<endl;                      
cout<<"3)Elimina Contatto."<<endl;                      
cout<<"4)Visualizza Contatto."<<endl;                      
cout<<"0)Esci."<<endl;                                            cin>>scelta;                                           
 switch(scelta){
case 1:NuovoContatto(c, r);                                    
break;                                     
case 2:Modifica(c, r);                                     
break;                                     
case 3:Elimina(c, r);                                     
break;                                     
case 4:Visualizza(c, r);                                     
break;                                     }                      
}       
system("PAUSE");     
return EXIT_SUCCESS; }

HEADER.H
codice:
#ifndef header_h 
#define header_h 
#include<iostream> 
#include "string.h" 
#define N 256  

using namespace std;  
typedef char str [N]; 
typedef struct{ str nome;                 
                      int numero, codice;} rubrica;  
void NuovoContatto(rubrica, int &);  
void Modifica(rubrica, int &) ;  
void Elimina(rubrica, int &) ;  
void Visualizza(rubrica, int &) ;  
#endif
HEADER.CPP
codice:
#include "header.h"  
void NuovoContatto(rubrica c[], int &r) {      
cout<<"Inserisci il numero di contatti da inserire :\n ";      
cin>> r;      
for (int i=0;i<r;i++){         
                            cout<<"Inserisci il codice del contatto:";          
                            cin>>c[i].codice;          
                            cout<<"Inserisci il nome:";         
                            cin>>c[i].nome;          
                            cout<<"Inserisci il numero:";          
                            cin>>c[i].numero;} 
}  
void Modifica(rubrica c[], int &r) {     
int k;    
cout<<"Inserisci il codice del contatto:"<<endl;     
cin>>k;      
for(int i=0;i<r;i++){             
                 if(k==c[i].codice){
                                         cout<<"Inserisci il nome:";
                                         cin>>c[i].nome;          
                                         cout<<"Inserisci il numero:";          
                                         cin>>c[i].numero;}   
                                            }                          
                           } 
}  
void Elimina(rubrica c[], int &r) 
{     
int k;     
cout<<"Inserisci il codice del contatto:"<<endl;     
cin>>k;      
for(int i=0;i<r;i++){             
if(k==c[i].codice)  c[i]=c[i+1];  }    
 r--; 
}  
void Visualizza(rubrica c[], int &r) 
{
cout<<"Codice"<<"      "<<"Nome"<<"     "<<"Numero"<<endl;     
for(int i=0;i<r;i++){
cout<<c[i].codice<<" "<<c[i].nome<<" "<<c[i].numero<<endl;
}
 }