Dopo la compilazione del codice non ci sono errori ma a video esce questo:
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
Non ho mai visto questo errore quindi chiedo a voi.
Il problema è iniziato dopo l'aggiunta di questo pezzo di codice.
[CODE]
#include <iostream>
#include <fstream>
#define MAX 25
using namespace std;
struct menu {
string nome;
float prezzo;
};
struct ordine {
string name;
int nOrd; // numero ordinazioni
ordine * next;
};
ordine * Oprimo = NULL;
ordine * Otemp = NULL;
ordine * Oultimo = NULL;
struct tavolo {
int NC;
tavolo * inizio;
};
tavolo sala [MAX];
fstream a, p, d, b;
.
.
.
int apriAntipasti(char nomeAntipasti[]){
int riempimento = 0;
int i;
a.open("antipasti.txt", ios::in);
while(!a.eof()){
a>>i;
riempimento ++;
}
a.close();
return riempimento;
}
void readAntipasti(char nomeAntipasti[], int*vettore, int riempimento){
a.open("antipasti.txt", ios::in);
for(int i = 0; i < riempimento; i++){
a>>vettore[i];
}
a.close();
}
int apriPizze(char nomePizze[]){
int riempimento = 0;
int i;
p.open("pizze.txt", ios::in);
while(!a.eof()){
a>>i;
riempimento ++;
}
p.close();
return riempimento;
}
void readPizze(char nomePizze[], int*vettore, int riempimento){
p.open("pizze.txt", ios::in);
for(int i = 0; i < riempimento; i++){
a>>vettore[i];
}
p.close();
}
int apriDolci(char nomeDolci[]){
int riempimento = 0;
int i;
d.open("dolci.txt", ios::in);
while(!a.eof()){
a>>i;
riempimento ++;
}
d.close();
return riempimento;
}
void readDolci(char nomeDolci[], int*vettore, int riempimento){
d.open("dolci.txt", ios::in);
for(int i = 0; i < riempimento; i++){
a>>vettore[i];
}
d.close();
}
int apriBevande(char nomeBevande[]){
int riempimento = 0;
int i;
b.open("bevande.txt", ios::in);
while(!a.eof()){
a>>i;
riempimento ++;
}
b.close();
return riempimento;
}
void readBevande(char nomeBevande[], int*vettore, int riempimento){ b.open("bevande.txt", ios::in);
for(int i = 0; i < riempimento; i++){
a>>vettore[i];
}
b.close();
}
int main () {
string nome, risposta, risVis;
int i = 0, numero = 0, anti, pizz, dolc, bev;
char nomeAntipasti[] = "antipasti.txt";
char nomePizze[] = "pizze.txt";
char nomeDolci[] = "dolci.txt";
char nomeBevande[] = "bevande.txt";
int*v;
v = new int [anti];
int*v1;
v1 = new int [pizz];
int*v2;
v2 = new int [dolc];
int*v3;
v3 = new int [bev];
cout<<"Benvenuto!"<<endl;
if(!fileVuoto()){
cout<<"Ora devi inserire il menu... "<<endl;
caricaMenu();
}else{
cout<<"Menu' caricato!"<<endl;
cout<<"Vuoi visualizzare il file? "<<endl;
cin>>risVis;
if(risVis == "si" || risVis == "Si" || risVis == "sI" || risVis == "SI"){
anti = apriAntipasti(nomeAntipasti);
readAntipasti(nomeAntipasti, v, anti);
for(int i = 0; i < anti; i++){
cout<<v[i]<<" ";
}
pizz = apriPizze(nomePizze);
readPizze(nomePizze,v2,pizz);
for(int i = 0; i < pizz; i++){
cout<<v1[i]<<" ";
}
dolc = apriDolci(nomeDolci);
readDolci(nomeDolci, v2, dolc);
for(int i = 0; i < dolc; i++){
cout<<v2[i]<<" ";
}
bev = apriBevande(nomeBevande);
readBevande(nomeBevande,v3,bev);
for(int i = 0; i < bev; i++){
cout<<v3[i]<<" ";
}
}
.
.
.
.