मैं एक असाइनमेंट के लिए पूंछ को लागू करने पर काम कर रहा हूं। मुझे यह सही तरीके से काम कर रहा है, हालांकि मुझे यादृच्छिक समय पर मुफ्त में त्रुटि मिल रही है।मॉलोक त्रुटि: मुक्त ऑब्जेक्ट के लिए गलत चेकसम
मैं इसे देखने के लिए नहीं देख सकता, इसे पैटर्न के नीचे या इसके अलावा कुछ भी सुसंगत है।
उदाहरण के लिए यदि मैं अपने प्रोग्राम को "tail -24 test.in" के रूप में कॉल करता हूं तो मुझे कई रनों पर एक ही पंक्ति में गलत चेकसम त्रुटि मिल जाएगी। हालांकि, अलग-अलग फाइलों और यहां तक कि प्रिंट करने के लिए लाइनों की अलग-अलग संख्याओं के साथ मैं त्रुटियों के बिना वापस आऊंगा।
इस मुद्दे को ट्रैक करने के तरीके पर कोई विचार, मैं इसे बिना किसी लाभ के घंटों तक डीबग करने का प्रयास कर रहा हूं।
lines = (char**) malloc(nlines * sizeof(char *));
void insert_line(char *s, int len){
printf("\t\tLine Number: %d Putting a %d line into slot: %d\n",processed,len,slot);
if(processed > numlines -1){//clean up
free(*(lines+slot));
*(lines + slot) = NULL;
}
*(lines + slot) = (char *) malloc(len * sizeof(char));
if(*(lines + slot) == NULL) exit(EXIT_FAILURE);
strcpy(*(lines+slot),s);
slot = ++processed % numlines;
}
स्लॉट 0 या 1 आधारित है? स्लॉट कभी भी nlines-1 से अधिक नहीं है, सही? – Dre
सही मॉड्यूलस स्वचालित रूप से इसे 0 – None
पर वापस ले जाता है जो आप किस कंपाइलर और डीबगर का उपयोग कर रहे हैं? उस पर निर्भर करते हुए, वे आपकी समस्या को डीबग करने में कुछ सहायता प्रदान कर सकते हैं। –