Guarda che in questa riga

for (i=0; i<=data->num_var+1; i++)

ci sia qualcosa che non va ... potrei sbagliare, ma mi sa che deve essere

for (i=0; i<data->num_var+1; i++)