עבור לתוכן

תוכנית ב - C : במצב דיבאג עובדת טוב, במצב רגיל מקבל צליל אזהרה

Featured Replies

פורסם

מוזר מאוד ???

התוכנית מקבלת שתי פולינומים ומחזירה את הסכום שלהם.

כשאני מריץ אותה בלי דיבאג, אני מקבל צליל אזהרה.

כשאני מריץ אותה עם דיבאג, היא עובדת טוב, מדפיסה את כל מה שצריך

אפילו סימנתי את הbreakpoint האחרון ממש בסוף של הmain, כדי לראות את מצב המשתנים לפני שהתוכנית מסתיימת והכל תקין.

נסיתי בproject חדש, אותו דבר.

הקוד:

http://dl.dropbox.com/u/24303191/func5.txt

ריצה בלי דיבאג(מקבל צליל אזהרה והתוכנית לא מסתיימת כמו שצריך):

http://dl.dropbox.com/u/24303191/nodebug.gif

ריצה עם דיבאג:

http://dl.dropbox.com/u/24303191/debug.gif

פורסם

אז סביר להניח שיש לך דריסת זכרון איפשהו, או שאתה ניגש לזכרון ששוחרר או לזכרון שלא אותחל (הדיבאגר נוטה להסתיר בעיות כאלה).

פורסם
  • מחבר

לא היה לי מושג, תודה.

מצאתי את הבעיה, היא הייתה בהקצאת הזיכרון

במקום

tempPol = (Monom*)malloc(sizeof(Monom)*(Pol1Size+Pol2Size));

הייתי צריך להוסיף מקום אחד אקסטרה

tempPol = (Monom*)malloc(sizeof(Monom)*(Pol1Size+Pol2Size+1));

כבר קרה לי כמה פעמים שנפלתי על זה, זה לא תמיד נדרש לתת מקום אחד אקסטרה, יש מקרים ספציפים שבהם צריך לדעת לעשות את זה?

פורסם

אה... מתי שצריך?

אין איזו נוסחת קסם שתאמר לך מתי צריך לעשות מה, זה תלוי באיך שאתה משתמש בזכרון הזה.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים