Sicuramente come dici tu è più corretto, ma funziona anche senza usare strcpy, il problema era che dovevo allocare dei bytes prima di copiare la stringa

codice:
	NewNode.val =  malloc(sizeof(stringa));
	NewNode.val = stringa;
     //	strcpy (NewNode.val,stringa); non necessaria