bhà ho dato un'occhiata al codice...anche se non ho ben capito cosa t serve e cosa dovrebbe stampare quella seconda printf() ho interpretato un pò e ho cercato solo di farla stampare! dimmi se è quello che cercavi o se ho fatto tutt'altro!!
posto il codice qua:
	codice:
	#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct mia {
       char primo[15];
};
void tokenizer(char * bufferIn, struct mia *mia);
int gestore_licenze (char *bufferIn, char *bufferOut);
int main ()
{	
	char bufferIn[]="F|V|F|1|0|0|0";
	char *bufferOut;
	int ret;
	
	printf("Avviato main\n");
	printf("buffer da spacchettare: %s\n", bufferIn);	
	ret = gestore_licenze(bufferIn, bufferOut);
	printf("Terminato main\n");
	system ("pause");
	return 0;
}
void tokenizer(char* bufferIn, struct mia *mia)
{
	char *pch;
	
	pch = strtok (bufferIn, "|");
	
	if (pch != NULL)
	{
	   strcpy((*mia).primo, pch); 	    
           strcat((*mia).primo, "\n"); 
           printf("primo: %s\n", (*mia).primo); 	    
	}
}
int gestore_licenze (char *bufferIn, char *bufferOut)
{
 	struct mia mia;
	char risposta[15];
	
    tokenizer(bufferIn,&mia);
	if (strcmp(mia.primo, "F") != 0)
	{
	    	strcpy(risposta, "OK|");
                printf("%s\n", mia.primo);
                strcat(risposta, mia.primo);		
	}
}
 
 ciao ciao