hxara Δημοσ. 6 Ιουνίου 2005 Δημοσ. 6 Ιουνίου 2005 Καλησπέρα. Αντιμετωπίζω ενα σφάλμα στο προγραμμα που φτιάχνω,αλλα δεν μπορώ να δώσω λύση. Η βασική δομή που χρησιμοποιώ είναι η συνδεδεμένη λίστα κ παίζω με αρχείο παράλληλα. Οταν βάζω ενα αρχείο σχετικά μικρό (2 μέγα) , τότε δεν υπάρχει πρόβλημα. Όταν βάζω ενα μεγάλο αρχείο (5 μέγα) αφού κάνει τους υπολογισμούς που θέλω, στο τέλος πετάει το γνωστο "memory could not be read....". Έχει όμως διαβάσει το αρχείο κ το έχει φορτώσει στην μνήμη.δηλαδη η επεξεργασία έχει γίνει. Εχει κανείς καμία ιδέα?΄ Ευχαριστώ εκ των προτέρων :?
bandito Δημοσ. 6 Ιουνίου 2005 Δημοσ. 6 Ιουνίου 2005 Καλησπέρα.Αντιμετωπίζω ενα σφάλμα στο προγραμμα που φτιάχνω' date='αλλα δεν μπορώ να δώσω λύση. Η βασική δομή που χρησιμοποιώ είναι η συνδεδεμένη λίστα κ παίζω με αρχείο παράλληλα. Οταν βάζω ενα αρχείο σχετικά μικρό (2 μέγα) , τότε δεν υπάρχει πρόβλημα. Όταν βάζω ενα μεγάλο αρχείο (5 μέγα) αφού κάνει τους υπολογισμούς που θέλω, στο τέλος πετάει το γνωστο "memory could not be read....". Έχει όμως διαβάσει το αρχείο κ το έχει φορτώσει στην μνήμη.δηλαδη η επεξεργασία έχει γίνει. Εχει κανείς καμία ιδέα?΄ Ευχαριστώ εκ των προτέρων :?[/quote'] Αν έγραφες και το κομμάτι του κώδικα που κάνει τον υπολογισμό η διαβάζει την μνήμη θα ήταν καλά. Κάτι μου λεει οτι ζητάς μνήμη που δεν την έχεις δεσμευσει.
hxara Δημοσ. 7 Ιουνίου 2005 Μέλος Δημοσ. 7 Ιουνίου 2005 Αν έγραφες και το κομμάτι του κώδικα που κάνει τον υπολογισμό η διαβάζει την μνήμη θα ήταν καλά. Κάτι μου λεει οτι ζητάς μνήμη που δεν την έχεις δεσμευσει. Eυχαριστώ για την απάντηση. Ομως αυτό που λες δεν γίνεται.Γιατί τα αποτελέσματα που θέλω υπάρχουν.Δηλαδή τα έχει επέξεργαστεί. Αυτό που δεν καταλαβαίνω είναι γιατι βγάζει αυτό το μήνυμα μόνο όταν έχω παρα πολλά δεδομένα. Δεν εχω πρόβλημα να δείξω τον κώδικα. Αλλά είναι πολύς κ φοβάμαι οτι θα μπερδευτείς. Λοιπόν?
bandito Δημοσ. 7 Ιουνίου 2005 Δημοσ. 7 Ιουνίου 2005 Eυχαριστώ για την απάντηση.Ομως αυτό που λες δεν γίνεται.Γιατί τα αποτελέσματα που θέλω υπάρχουν.Δηλαδή τα έχει επέξεργαστεί. Αυτό που δεν καταλαβαίνω είναι γιατι βγάζει αυτό το μήνυμα μόνο όταν έχω παρα πολλά δεδομένα. Δεν εχω πρόβλημα να δείξω τον κώδικα. Αλλά είναι πολύς κ φοβάμαι οτι θα μπερδευτείς. Λοιπόν? Αστο θα μπερδευτω
powerfty Δημοσ. 7 Ιουνίου 2005 Δημοσ. 7 Ιουνίου 2005 Υποψιάζομαι πιο είναι το πρόβλημα αλλά θα προτιμούσα να δω τον κώδικα πριν σου απαντήσω με σιγουριά.
bandito Δημοσ. 7 Ιουνίου 2005 Δημοσ. 7 Ιουνίου 2005 Υποψιάζομαι πιο είναι το πρόβλημα αλλά θα προτιμούσα να δω τον κώδικα πριν σου απαντήσω με σιγουριά. Θες να μπερδευτείς;
powerfty Δημοσ. 8 Ιουνίου 2005 Δημοσ. 8 Ιουνίου 2005 Θες να μπερδευτείς; 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.
kickeras Δημοσ. 8 Ιουνίου 2005 Δημοσ. 8 Ιουνίου 2005 debugging xwris kwdika de ginetai...egw afto exw mathei tosa xronia...ante na doume
hxara Δημοσ. 8 Ιουνίου 2005 Μέλος Δημοσ. 8 Ιουνίου 2005 Καλημερα κ απο εμένα. Η απορία μου είναι η εξής.Πως είναι δυνατόν να τρέχει το πρόγραμμα μια χαρά σε ενα μικρό αρχείο κ στο μεγάλο να βγάζει αυτό το σφάλμα,ενω έχει ως έξοδο τα αποτελέσματα που θέλω. Άρα, δεν είναι πρόβλημα κάποιου bug διότι θα είχε λάθος κ στο μικρό αρχείο! Μήπως φταίει κάτι άλλο? Ευχαριστώ Χαρα
hxara Δημοσ. 8 Ιουνίου 2005 Μέλος Δημοσ. 8 Ιουνίου 2005 //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; } Το πρόγραμμα διαβάζει κάποια δεδομένα κ βρίσκει την συχνότητα των εμφανιζόμενων τιμών.Μετά τα περνάει σε αρχείο!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.