עבור לתוכן

עזרה ב-C: משתנה שלפתע הופך ל-NULL

Featured Replies

פורסם

היי,

יש לי בעיה בתוכנית עם משתנה מסוג int.

התוכנית כוללת משחק בין 2 משתתפים.

המשתנה int מאותחל בהתחלה ל-0, וכשמגיע תורו של שחקן 1 לשחק - בסוף התור המשתנה הופך לערך 2.

וכן הלאה.. מגיע תורו של שחקן 2, ובסוף התור ה-int הופך לערך 1 כדי שבפעם הבאה יהיה תורו של שחקן 1.

הבעיה היא שבאמצע התכנית ה-int הופך ל-NULL מסיבה כלשהי שאינני מצליח להבין. כאילו היה משתנה דינאמי ששוחרר...

האם יש תופעות לוואי כלשהן ב-C שאני פשוט לא מדוע אליהן?

(הקוד נכתב בסי ולא בסי++)

תודה מראש,

גלעד

פורסם

null זה רק למצביעים. int לא יכול להיות null, הוא יכול להיות 0.

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

קצת קשה לדעת מה הבעיה בלי לראות את הקוד שלך.

פורסם

כמו שכתב קודמי יש כל מיני בעיות לדוגמת דריסת זיכרון שיכולות לגרום למצב הזה

מה שהייתי ממליץ לך לעשות זה לקבוע נקודת עצירה מיוחדת בגישה לזיכרון

בvisual c++ זה נקרא data breakpoint

ככה שהתוכנית שלך תרוץ וברגע שהמשתנה בכתובת הזיכרון שנקבעה נכתב

התוכנית תעצר

ארכיון

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

דיונים חדשים