אני די בטוח שאני יודע מה הבעיה שלך והיא קשורה בהקצאה דינמית של זכרון.
נתחיל מאופציה א':
אני חושב שמה שקורה זה שבגלל שאתה לא משתמש בפוינטר לתת מבנה ומקצה לו זכרון דינמי ברגע שנגמר הבלוק הזכרון משתחרר והערכים נאבדים מה שקורה אחרי זה שאתה ניגש לזה אין שם כלום ואתה מקבל בטח או ערכי זבל של המערכת או רייטינג וויוליישן אקספשן.במקרה ב':
הפעם כאמור אתה כן משתמש במצביע לתת מבנה אבל מה שקורה לפי התיאור של מה שאתה אומר שעשית זה שאתה לא מקצה לו זכרון דינאמי למבנה ולכן אני מנחש שאתה מקבל רייטינג ויוליישן אקספשן....
היה נחמד אם היית שם פה את הקטע קוד זה היה ממש מקל על הדיבאגינג כי רוב מה שאמרתי פה זה די ניחושים כי אין לי תקוד מול העיניים.