
27-07-2006, 22:10
|
 |
מנהל פורום מערכות הפעלה - הרובע המייקרוסופטי.
|
|
חבר מתאריך: 07.10.04
הודעות: 13,777
|
|
|
אתה אומר לו כמה להקצות
תחשוב על הזכרון שלך כעל מגירה עם המון תאים ממוספרים.
אם כתבת את השורה הבאה:
(כל int מקבל 2 תאים, אבל לא ניכנס לזה עכשיו)
אז נתת לA 2 תאים, לB נתת 2 תאים, לC נתת 8 תאים, ולD נתת 2
עכשיו.
נניח שA הוקצה בכתובת 5036, אז B בורצה בכתובת 5038, c[0] אלו 2 התאים הראשונים של C, כלומר, לפי מה שאמרנו קודם, C יוקצה בכתובת "5040" ומכאן הכתובת של c[0] היא 5040.
הכתובת של c[1] היא 5042, c[2] היא 5044, c[3] היא 5046.
ולסיום - D מוקצה בכתובת 5048.
השאלה שלך היא, איפה מוקצה c[4]? הרי המהדר לא מונע ממך להשתמש בו...
ובכן, כמו שאני מקווה שניחשת, הכתובת של c[4] היא 5048.
אני מקווה שאתה רואה את הבעייתיות בעניין...
C לא ממש עוצר אותך בכול נושא הגישה לזכרון, אז האחריות היא עליך לא לדפוק לעצמך את המחשב 
_____________________________________
|