Salve, ho dichiarato la seguente struct:

codice:
typedef struct problemData{
	
	int n;
	int m;
	int num_var;
	int num_slack;
	int not_zero_coeff;
	int solution;
	int iterations;

	int* way;
	int* basevar;

	bool art_var;
	bool first_open;
	bool* varstate;

	double** mat;
	
	char problem_name[50];
	char* res_name;

}needed_data;
La utilizzo nel main nel seguente modo:

codice:
void main(){

	needed_data data;

	data.res_name = "results.txt";

	// Richiesta inserimento nome file dati
	do
	{	
		printf("\nDigitare il nome del file con i dati del problema: ");
		scanf("%s",&data.problem_name);
		printf("\n");
	}
	while (!getData(&data));

	simplessoDuale(&data);

	system("pause");

	free(&data);
}
Tuttavia quando vorrei liberare la memoria allocata tramite:

codice:
free(&data);
MSV 2005 crasha dicendomi:


Windows ha generato un punto di interruzione in Simplesso Duale.exe.

Ciò può essere dovuto a un danneggiamento dell'heap e indica un errore in Simplesso Duale.exe o in una qualunque delle DLL che ha caricato.

Controllare la finestra di output per ulteriori informazioni diagnostiche.


Potrei sapere dove sta l'errore e se eventualmente esiste un altro metodo in alternativa
alla free()? Grazie.

:master: