מישהו היה לאחרונה בחברת רד למשרת פיתוח בשפת C?
אתם יודעים מה שואלים?
לפני 17 שנים
ע"י: 1_אורח_כללי
תודה !
אסף התחיל לחפש עבודה כשהוא עדיין מתכנן את החזרה לישראל מחו"ל,
למרות ידע וניסיון רחב, הוא נתקל במחסומים לא הגיוניים כשניסה לחפש עצמאית.
חיפוש עבודה היא משימה, שעדיף לתת למישהו אחר לעשות עבורכם,
במיוחד כשאין לכם את הפניות לעשות את זה לבד,
במיוחד במיוחד כשאתם מודעים לערך שלכם בשוק, אבל לא מרגישים אותו בפועל.
לבדיקת התאמה
לפני 18 שנים
ע"י: 1_אורח_כללי
כל הכבוד על ההשקעה - יישר כח !
לפני 18 שנים
ע"י: 1_אורח_כללי
הייתי שם, זה מה ששאלו אותי:
1. ניהול זכרון:
נתון איזור רצוף בזכרון של בלוקים בגודל של 1KB. יש להציע מימוש של פונקציות הקצאה ושחרור עבור הבלוקים האלו. ניתן להניח שהקלט תמיד חוקי(כלומר שמשתמש לא יבקש לשחרר איזור שלא באמת הוקצה לו)
פתרון שלי: רשימה מקושרת של כל הבלוקים המשוחררים.
איתחול: הכנסת כל הבלוקים לרשימה
הקצאה: הוצאת האיבר הראשון ברשימה והחזרתו למשתמש
שחרור: הכנסת הבלוק לראש הרשימה
המראיינת לא אהבה את הפתרון ואמרה שאמנם לוגית הוא נכון אבל יש בו תקורה מיותרת
פתרון של המראיינת: מחסנית של כתובות
אתחול: דחיפת כל כתובת של תחילת בלוק לתוך המחסנית
הקצאה: הוצאת הכתובת שבראש המחסנית והחזרתה למשתמש
שחרור: הכנסת הכתובת המשוחררת לראש המחסנית.
2. מימוש מניעה הדדית:
יש 2 CPU שמשתמשים באותו זכרון, ישנו קטע קריטי מסויים שבו אסור ששניהם יהיו בו בו-זמנית. מה צריך כל CPU לבצע לפני ואחרי כל גישה לקטע הקריטי.
את הפתרון שלי המראיינת לא ממש אהבה, אז אין טעם לרשום אותו.
3 אני לא לגמרי זוכרת אבל זה היה בערך כך:
יש 2 פונציות F1 ו-F2:
void f1()
{
stc_x *ptr
f2(????????)
}
void f2(?????????)
{
stc_x s
???????
}
1. צריך להשלים את הקטעים המסומנים ב-????? כך שבסיום הקריאה ל-F2 יצביע PTR ל-S.
2. מה הבעיה עם הצבעה כזו?
3. איך אפשר לפתור את הבעיה?
פתרון:
1. בהגדרה של F2 (ב-???? השניים) צריך לרשום stc_x **ptr (זה מה שהמראיינת אמרה), לגבי השאר אני לא בטוחה
2. הבעיה היא שבתוך F2 המשתנה S הוא מקומי ואחרי שיוצאים מהפונקציה הוא כבר לא מוכר וכתוצאה מכך המצביע מצביע על זבל
3. צריך להגדיר את המשתנה S כסטאטי
זהו, אני מקווה שעזרתי.
בהצלחה למי שהולך