Allora è un evidente problema "di puntatori" ... quindi la maggiore indiziata è la lista (e la sua costruzione) ... Infatti, dovrebbe essere

codice:
struct elemento *DNAGen(int k)
{
	struct elemento *list=NULL, *pnew;

	for(int i=0; i<k; i++)
	{
		pnew=(struct elemento*)malloc(sizeof(struct elemento));
		
		pnew->next=list;
		pnew->info=random_char();

		list=pnew;
	}

	return list;
}