stratox
29-07-2009, 18:56
Ciao a tutti,
premetto che sono niubbo di C++, mentre in passato ho avuto a che fare col
C.
Per imparare, sto scrivendo un programma per controllare le giocate del
superenalotto (tema di moda). Sono alla prima fase, ovvero inserimento
delle giocate.
Ho creato una classe "giocata" in cui sono definiti il n° di schedina e
il n° di giocata, per il confronto coi numeri vincenti ci si penserà in
un secondo momento.
L'allocazione di memoria ovviamente è dinamica, e vengono creati tanti
oggetti "giocata" quanto appunto sono le giocate.
Veniamo al problema, il compilatore compila senza errori, parte il
programma, inserisco numero di schedine e di giocate ed è ok, ma
all'inserimento del primo numero della prima sestina, il programma crasha
con errore di "Eccezione non gestita a 0x104bf00a in primo.exe:
0xC0000005: Violazione di accesso nella scrittura del percorso
0xcdcdcdd5".
Se qualcuno ha qualche idea ringrazio, molto, allego il sorgente sotto.
#include <iostream>
using namespace std;
class giocata
{
public:
int s; //numero schedina
int g; //numero giocata
int c[6]; //sestina giocata
};
int main ()
{
giocata ** a;
int b=-1,n,g,i,j,k;
int num;
n=6;
cout << "Inserisci il numero di schedine: ";
cin >> num;
cout << "Inserisci il numero di giocate per scheda: ";
cin >> g;
a = new (nothrow) giocata * [num*g];
for(i=0;i<num;++i)
{
cout << "- Schedina No " << i+1 << endl;
for(j=0;j<g;++i)
{
cout << "- Giocata No " << j+1 << endl;
for(k=0;k<6;++k)
{
b++;
cout << "Inserisci il " << k+1 << "° numero: ";
cin >> a[b]->c[k];
a[b]->s = i+1;
a[b]->g = j+1;
}
}
}
return 0;
}
premetto che sono niubbo di C++, mentre in passato ho avuto a che fare col
C.
Per imparare, sto scrivendo un programma per controllare le giocate del
superenalotto (tema di moda). Sono alla prima fase, ovvero inserimento
delle giocate.
Ho creato una classe "giocata" in cui sono definiti il n° di schedina e
il n° di giocata, per il confronto coi numeri vincenti ci si penserà in
un secondo momento.
L'allocazione di memoria ovviamente è dinamica, e vengono creati tanti
oggetti "giocata" quanto appunto sono le giocate.
Veniamo al problema, il compilatore compila senza errori, parte il
programma, inserisco numero di schedine e di giocate ed è ok, ma
all'inserimento del primo numero della prima sestina, il programma crasha
con errore di "Eccezione non gestita a 0x104bf00a in primo.exe:
0xC0000005: Violazione di accesso nella scrittura del percorso
0xcdcdcdd5".
Se qualcuno ha qualche idea ringrazio, molto, allego il sorgente sotto.
#include <iostream>
using namespace std;
class giocata
{
public:
int s; //numero schedina
int g; //numero giocata
int c[6]; //sestina giocata
};
int main ()
{
giocata ** a;
int b=-1,n,g,i,j,k;
int num;
n=6;
cout << "Inserisci il numero di schedine: ";
cin >> num;
cout << "Inserisci il numero di giocate per scheda: ";
cin >> g;
a = new (nothrow) giocata * [num*g];
for(i=0;i<num;++i)
{
cout << "- Schedina No " << i+1 << endl;
for(j=0;j<g;++i)
{
cout << "- Giocata No " << j+1 << endl;
for(k=0;k<6;++k)
{
b++;
cout << "Inserisci il " << k+1 << "° numero: ";
cin >> a[b]->c[k];
a[b]->s = i+1;
a[b]->g = j+1;
}
}
}
return 0;
}