ciao raga

devo creare un thread che scriva a video una stringa ed un intero passati da linea di comando

nella compilazione mi da errore sull'assegnamento val.c1 =car1

dove sbaglio?
codice:
#include<stdlib.h>
#include<stddef.h>                                               
#include<stdio.h>
#include<string.h>
#include<unistd.h>
#include<fcntl.h>
#include<sys/types.h>                                  //LIBRERIE
#include<sys/stat.h>
#include<dirent.h>
#include<pthread.h>
#include<errno.h>

pthread_t tid1;

struct valori 
{ 
    int  a;
    char c1[10]; 
};

struct valori val;
 
void *fun1(void *arg)
{
 printf("stringa =%s\n",val.c1);
 printf("ho ricevuto in numero %d\n",val.a);
}



int main(int argc , char **argv)
{
 int n;
 char  car1[10] ;
 n=atoi(argv[1]);
 sprintf(car1,"%s",argv[2]);
 val.a=n;
 val.c1=car1;  // qua da errore
 pthread_create(&tid1,NULL,fun1,&val);
 pthread_join(tid1,NULL);
}