עבור לתוכן
View in the app

A better way to browse. Learn more.

HWzone

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

עזרה ב-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

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

התוכנית תעצר

ארכיון

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

דיונים חדשים

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.