יש לך פונקציה EX1 אתה משתמש שם במשתנה a, שהוא לא קיים, אפילו שהגדרת אותו בMAIN בתוך הפונקציה הוא לא קיים כי הוא לא גלובלי, פשוט תצהיר עליו בתוך הפונק'.באותה פונק' אתה שולח לפונק' אחרת את ROOT, שוב, הפונק' בכלל לא מכירה אותו, צריך לשלוח אותו מבחוץ.
לגבי המבנה בהתחלה, תקן אותי אם אני טועה, אבל אני חושב שהתכוונת לעשות משהו כזה:

כי ברגע שאתה עושה typedef הדבר הבא שתכתוב הוא השם החדש.
ואח"כ אתה יוצר את הROOT מהטיפוס החדש שיצרת.
יכול להיות שאני טועה, כי למדתי רק C אבל תבדוק את מה שאמרתי ותעדכן.
בהצלחה
