मैं valgrind साथ समस्या हो रही है: यह मेरा कार्यक्रम (अच्छी तरह से मुख्य हिस्सा है जहां त्रुटियों दिखाई देते हैं) है:वेलग्रिंड: आकार का अमान्य पढ़ने 1
int main()
{
char comanda[N];
....
char *p;
while(fgets(comanda,100,stdin)!=NULL)
{
p=strtok(comanda," \n");
if (strcmp(comanda,"INIT")==0)
{
p=strtok(NULL," ");
Init(n);
}
395 >>if (strcmp(p,"DUMP")==0)
{
Dump(n);}
if (strcmp(p,"ALLOC")==0)
{
Alloc(j,n);
}
....return 0;}
और यह कहते हैं जब मैं चलाने valgrind:
Invalid read of size 1 at 0x401569: main (:395) Address 0x0 is not stack'd malloc'd or (recently) free'd
मैं समझ नहीं इस कार्यक्रम के साथ क्या बात है।
जांचें कि 'स्ट्र' के बाद 'पी'' NULL' है या नहीं। – DCoder
यह निर्धारित करने के लिए कि वे क्या गलत कर रहे हैं, डीबगर के तहत प्रोग्राम चलाने के लिए भी एक अच्छा विचार हो सकता है। –
यहां एक डीबगर की आवश्यकता नहीं है, वाल्ग्रिंड बिल्कुल कहता है कि यहां क्या हो रहा है। @ user1934103, कृपया यह बताएं कि यह आपको क्या बता रहा है। यह संकेत उस स्थान पर '0x0' क्या हो सकता है? तो यह आपको बता रहा है कि 'पी'' 0' है। –