לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 23-01-2009, 07:08
צלמית המשתמש של המממ
  המממ המממ אינו מחובר  
 
חבר מתאריך: 30.10.01
הודעות: 8,699
Follow me...
מריחת זיכרון

אם אינני טועה, הודעה כזו תתקבל במקרה שבו מתבצעת כתיבה
של נתונים לכתובת זכרון מחוץ לגבולות המשתנה.

(למשל, כתיבה לתא במערך מחוץ לגבול המערך)

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

דוגמה:
קוד PHP:
 char array[2];
*(array + 
2) = 'X'


במקרה הזה תתבצע כתיבה של הערך 'X' לכתובת זיכרון הנמצאת שני בתים אחרי תחילת המערך.
הבעיה היא שאורך המערך כולו הוא רק שני בתים כולל ההתחלה [0]
כך שהזיכרון הזה עלול להיות בשימוש של משתנה אחר
או לעצבן את מערכת ההפעלה ולהפיל אותך בזמן ריצה
_____________________________________
_________________________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
אזהרה: משרד הבריאות קובע כי העישון מזיק לבריאות !
תראו, אפילו החייזר נהיה ירוק מזה

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 22:27

הדף נוצר ב 0.04 שניות עם 11 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר