Perchè fai:

int counter;
for(counter=0; counter<sizeof(tabric)/sizeof(rec_tab_ric);counter++) ??

il contatore non dovrebbe andare da 0 a 100?Dico questo perchè gli elementi dell'array sono appunto 100.
cioè io metterei :

int counter;
for(counter=0; counter<100;counter++)
memset(tabric[counter].rif_file,0,sizeof(tabric[counter].rif_file);

se te mi hai indirizzato nell'altra maniera sicuramente ho detto una boiata ma mi sapresti spiegare il perchè?
In ogni modo ti ringrazio per la tua veloce risposta.