Ah ok grazie 
Così pare che funziona!!!
codice:
#include <unistd.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <fcntl.h>
#define SIZE 15
typedef struct ElencoTelefonico{
char name[SIZE];
char surname[SIZE];
char numeroTelefono[SIZE];
}ElencoTelefonico;
void verificaInput(ElencoTelefonico record);
int main(int argc, char**argv) {
ElencoTelefonico record;
verificaInput(record);
printf("Nome: %s",record.name);
printf("Cognome: %s",record.surname);
printf("Numero: %s", record.numeroTelefono);
return 1;
}
void verificaInput(ElencoTelefonico record) {
char name_temp[SIZE+1];
char surname_temp[SIZE+1];
char numero_temp[SIZE+1];
do {
printf("\nInserisci il nome: ");
scanf("%s", name_temp);
printf("\nInserisci il cognome: ");
scanf("%s",surname_temp);
printf("\nInserisci il numero di telefono: ");
scanf("%s",numero_temp);
if(strlen(name_temp) > SIZE) {
printf("\nNome troppo lungo!\n");
}
if(strlen(surname_temp) > SIZE) {
printf("\nCognome troppo lungo!\n");
}
if(strlen(numero_temp) > SIZE) {
printf("\nNumero troppo lungo!\n");
}
}while((strlen(name_temp) > SIZE) || (strlen(surname_temp) > SIZE) || (strlen(numero_temp) > SIZE));
strcpy(record.name,name_temp);
strcpy(record.surname,surname_temp);
strcpy(record.numeroTelefono,numero_temp);
return;
}
Può sempre essere utile a qualcun'altro 
Edit:Le printf stampano una roba strana O.o