Se ho capito, dovrebbe andare bene, ma ti bastava scrivere

codice:
void init_window(window_wrapper* w) 
{ 
   w->head = w->tail = w->window; 
}
Naturalmente, quando passerai il puntatore w alla init_window, questo dovra' puntare ad una struttura gia' allocata in memoria ...