Salve a tutti ho un problemino a riguardo l'allocazione della
memoria dinamica su matrice bidimensionale. Grazie.
Ho creato un'applicazione dove devo allocare in memoria "dinamica" una matrice
bidimensionale di moltissimi record [Righe] e con un massimo di 20 Colonne [Vettori].
E' un programma per lo sviluppo delle combinazioni ,il famoso calcolo combinatorio.
Il punto è che non riesco a controllare l'errore di memoria esaurita il programma
va in crash.
Ho il PC con una memoria Ram libera di circa 1 Giga riesco a sviluppare circa 25 numeri in
undicina.
Mi spiego meglio postando il codice c++.
#define NULL 0
// alloco la matrice bidimensionale
int **Combinazione = new int *[Numero_Righe];
for (__int64 i = 0; i < Numero_Righe; i++){
Combinazione = new int[Lunghetta]; // Lunghetta rappresenta le 20 colonne
if(Combinazione == NULL) // Questo frammento di codice non fà il suo dovere perchè?
cout <<"Memoria insufficente\n";
}
// Ho preso spunto da questo frammento di codice scritto in un libro
// che usa una matrice monodimensionale
#define NULL 0
#define SIZE 512
int *Memory;
Memory=new int[SIZE];
if (Memory == NULL)
cout << "Memoria insufficente \n";
else
cout << "Memoria allocata \n";
delete(Memory);