Προς το περιεχόμενο

c++ problem


hxara

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα.

Αντιμετωπίζω ενα σφάλμα στο προγραμμα που φτιάχνω,αλλα δεν μπορώ να δώσω λύση.

Η βασική δομή που χρησιμοποιώ είναι η συνδεδεμένη λίστα κ παίζω με αρχείο παράλληλα.

 

Οταν βάζω ενα αρχείο σχετικά μικρό (2 μέγα) , τότε δεν υπάρχει πρόβλημα.

Όταν βάζω ενα μεγάλο αρχείο (5 μέγα) αφού κάνει τους υπολογισμούς που θέλω, στο τέλος πετάει το γνωστο

"memory could not be read....".

Έχει όμως διαβάσει το αρχείο κ το έχει φορτώσει στην μνήμη.δηλαδη η επεξεργασία έχει γίνει.

Εχει κανείς καμία ιδέα?΄

 

Ευχαριστώ εκ των προτέρων :?

Δημοσ.
Καλησπέρα.

Αντιμετωπίζω ενα σφάλμα στο προγραμμα που φτιάχνω' date='αλλα δεν μπορώ να δώσω λύση.

Η βασική δομή που χρησιμοποιώ είναι η συνδεδεμένη λίστα κ παίζω με αρχείο παράλληλα.

 

Οταν βάζω ενα αρχείο σχετικά μικρό (2 μέγα) , τότε δεν υπάρχει πρόβλημα.

Όταν βάζω ενα μεγάλο αρχείο (5 μέγα) αφού κάνει τους υπολογισμούς που θέλω, στο τέλος πετάει το γνωστο

"memory could not be read....".

Έχει όμως διαβάσει το αρχείο κ το έχει φορτώσει στην μνήμη.δηλαδη η επεξεργασία έχει γίνει.

Εχει κανείς καμία ιδέα?΄

 

Ευχαριστώ εκ των προτέρων :?[/quote']

 

Αν έγραφες και το κομμάτι του κώδικα που κάνει τον υπολογισμό η διαβάζει την μνήμη θα ήταν καλά.

Κάτι μου λεει οτι ζητάς μνήμη που δεν την έχεις δεσμευσει.

Δημοσ.
Αν έγραφες και το κομμάτι του κώδικα που κάνει τον υπολογισμό η διαβάζει την μνήμη θα ήταν καλά.

Κάτι μου λεει οτι ζητάς μνήμη που δεν την έχεις δεσμευσει.

 

Eυχαριστώ για την απάντηση.

Ομως αυτό που λες δεν γίνεται.Γιατί τα αποτελέσματα που θέλω υπάρχουν.Δηλαδή τα έχει επέξεργαστεί.

Αυτό που δεν καταλαβαίνω είναι γιατι βγάζει αυτό το μήνυμα μόνο όταν έχω παρα πολλά δεδομένα.

 

Δεν εχω πρόβλημα να δείξω τον κώδικα.

Αλλά είναι πολύς κ φοβάμαι οτι θα μπερδευτείς.

Λοιπόν?

Δημοσ.
Eυχαριστώ για την απάντηση.

Ομως αυτό που λες δεν γίνεται.Γιατί τα αποτελέσματα που θέλω υπάρχουν.Δηλαδή τα έχει επέξεργαστεί.

Αυτό που δεν καταλαβαίνω είναι γιατι βγάζει αυτό το μήνυμα μόνο όταν έχω παρα πολλά δεδομένα.

 

Δεν εχω πρόβλημα να δείξω τον κώδικα.

Αλλά είναι πολύς κ φοβάμαι οτι θα μπερδευτείς.

Λοιπόν?

 

Αστο θα μπερδευτω ;)

Δημοσ.

Υποψιάζομαι πιο είναι το πρόβλημα αλλά θα προτιμούσα να δω τον κώδικα πριν σου απαντήσω με σιγουριά.

Δημοσ.
Υποψιάζομαι πιο είναι το πρόβλημα αλλά θα προτιμούσα να δω τον κώδικα πριν σου απαντήσω με σιγουριά.

 

Θες να μπερδευτείς;

Δημοσ.
Θες να μπερδευτείς;

 

Perissotero mperdemenos eimai twra pou den exw katalavei plirws, kai stin ousia den kserw ti kanei o kwdikas, para otan ton diavasw. Mia pliris perigrafi mesw tou kwdika panta ksemperdevei to topio, oso xalia kai an einai o kwdikas. ;)

Δημοσ.

Καλημερα κ απο εμένα.

Η απορία μου είναι η εξής.Πως είναι δυνατόν να τρέχει το πρόγραμμα μια χαρά σε ενα μικρό αρχείο κ στο μεγάλο να βγάζει αυτό το σφάλμα,ενω έχει ως έξοδο τα αποτελέσματα που θέλω.

Άρα, δεν είναι πρόβλημα κάποιου bug διότι θα είχε λάθος κ στο μικρό αρχείο!

 

Μήπως φταίει κάτι άλλο?

Ευχαριστώ

Χαρα

Δημοσ.

//frequencies

typedef struct freq_node

{

string value; //timi

string freq; //syxnotita

freq_node *nxt;

}freq_node;

 

freq_node *variables [_nVar];

freq_node *ftemp, *ftemp2,*ftemp3,*fstart_ptr,*temp,*temp2;

bool flag=false;

 

 

//κύριος κώδικας

char buffer [20];

gcvt (value,8,buffer);

//frequencies

fstart_ptr=variables[j];

if (fstart_ptr == NULL)//list==empty

{

//create+add new node

temp = new freq_node;

temp->value=buffer;

// cout<<"buffer "<<buffer<<endl;

temp->freq="1";

temp->nxt = NULL;

fstart_ptr = temp;

variables[j]=fstart_ptr;

}

else

{

// search sequentially & if no, create

flag=false;

temp=variables[j];

do

{ if (temp == NULL)

cout << "End of list" << endl;

else

{ // Display details for what temp points to

if(temp->value==buffer)

{

flag=true;

int f =string_to_int(temp->freq);

temp->freq=int_to_String(f+1);

//cout<<"value " <<temp->value<<endl;

//cout << "Name : " << temp->freq<< endl;

}

// Move to next node (if present)

temp = temp->nxt;

}

}

while (temp != NULL);

 

if(!flag)

{

ftemp2=new freq_node;

ftemp2->value=buffer;

ftemp2->freq="1";

ftemp2->nxt=NULL;

temp=variables[j];

// Set up link to this node

if (temp == NULL)

temp = ftemp2;

else

{

 

 

temp2 = temp;//temp2 has start_ptr

// We know this is not NULL - list not empty!

while (temp2->nxt != NULL)

{ temp2 = temp2->nxt;

// Move to next link in chain

}

temp2->nxt = ftemp2;

}

}//end flag

 

}//end else(list is not null)

 

 

//περασμα σε αρχειο

int index=0;

for (int i=0;i<_nVar;i++)

{

//showing

temp=variables;

if(index==0)

{

freq_file<<varNames<<endl;

}

 

do

{ if (temp == NULL)

cout << "End of list" << endl;

else

{

freq_file<<temp->value<<";"<<temp->freq<<";"<<endl;

temp = temp->nxt;

if (temp==NULL)

freq_file<<"end of "<<varNames<<"\n";

}

}

while (temp != NULL);

index=0;

 

}

 

Το πρόγραμμα διαβάζει κάποια δεδομένα κ βρίσκει την συχνότητα των εμφανιζόμενων τιμών.Μετά τα περνάει σε αρχείο!

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...