|
עמוד:180
6 . 4 מערכים ומחרוזות במרחבי הנתונים ניתן להגדיר מערכים ומחרוזות בכל אחד ממרחבי הזיכרון ; xdata , bdata , idata , data ו- . pdata המגבלה היחידה היא גודל הזיכרון העומד לרשות המשתמש בכל אחד ממרחבי הזיכרון האלה . הגדרה של משתנים , של מערכים ושל מחרוזות בנפח הגורם לחריגה מגודל הזיכרון גורמת להופעה של הודעת שגיאה כדוגמת . ADDRESS SPACE OVERFLOW מתכנן מערכת משולבת מיקרו-בקר חייב להתחשב במגבלת הזיכרון בעת תכנון המערכת . דוגמה 6 . 6 הגדרת מערכים במרחבי זיכרון שונים לפניכם הגדרות של מערכים במרחבי הזיכרון השונים . בהנחה שזו ההגדרה היחידה , קבעו עבור כל הגדרה אם ההגדרה תקינה . אם ההגדרה אינה תקינה , נמקו מדוע . 1 ) idata char a [ 30 ]; 2 ) data char a [ 72 ]; 3 ) data char a [ 75 ]; 4 ) idata char a [ 82 ]; 5 ) bdata int a [ 10 ]; 6 ) pdata int a [ 200 ]; 7 ) xdata char a [ 300 ]; פתרון : . 1 הגדרה היא תקינה . גודל זיכרון idata ( אם קיים זיכרון ) הוא 80 בתים . בהגדרה קיימת הקצאה של 30 בתים . . 2 ההגדרה היא תקינה . גודל זיכרון data הוא 80 בתים . שמונה בתים מוקצים לקבוצת האוגרים . R 0-R 7 בהגדרה קיימת הקצאה של 72 בתים . . 3 ההגדרה אינה תקינה . על-פי הנימוק הקודם : שמונה בתים מוקצים לאוגרים ולכן נותרים בדיוק 72 בתים פנויים . מכאן שלא ניתן להגדיר מערך בגודל זה . . 4 ההגדרה אינה תקינה . גודל הזיכרון idata הוא 80 בתים . ההגדרה חורגת מגודל זה . . 5 ההגדרה אינה תקינה . גודלו של מרחב bdata הוא 16 בתים . מערך של 10 מספרים שלמים מסוג int דורש הקצאה של 20 בתים . . 6 ההגדרה אינה תקינה . גודלו של מרחב pdata הוא 256 בתים . מערך של 200 מספרים שלמים מסוג int דורש 400 בתים . תנאי הכרחי הוא קיומו של רכיב זיכרון במרחב זיכרון זה . . 7 ההגדרה היא תקינה אם קיים רכיב זיכרון בגודל זה במרחב הזיכרון החיצוני .
|
|