Salve a tutti è da molto che non torno a questo forum, ho un problema con C
Ho una struct nodo del tipo

struct vertice{
int data;
double a;
char *s;
struct vertice *vertice_successivo;
};

typedef struct vertice V;

e devo aggiungere un vertice con un intero, un double ed una stringa

//AGGIUNGI VERTICE
contatore++;
printf("\n vertice(%d) da aggiungere",contatore);
printf("\n inserisci numero double ");
scanf("%lf",&nd);
printf("\n inserisci stringa ");
scanf("%s",&s);
origine = aggiungi_vertice(origine, contatore, nd, s);


V* aggiungi_vertice(V*origine, int d, double nd, char *stringa){
V* n=(V*)malloc(sizeof(V));
n->data = d;
n->a = nd;
n->s = stringa;
n->vertice_successivo=origine;
return n;
}

il mio problema è banale, la gestione della stringa nel nodo in fase di stampa

printf("(%d)(%lf)(%s) -> ", origine->data, origine->a, origine->s);

dove sbaglio, grazie anticipatamente