ABA


"2 שאלות על C(אחת על זכרון ואחת על External variable)."
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #15631 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 15631
the crusher
חבר מתאריך 1.8.02
18936 הודעות
   01:10   25.12.09   
אל הפורום  
  2 שאלות על C(אחת על זכרון ואחת על External variable).  
 
   שאלה ראשונה-מדוע אי אפשר לשנות תו כלשהו בתוך מחרוזת שהיא אינה const char אלא char*?
דוגמה
char *s;
s="gabi";
s=c;-כאן מתקבלת השגיאה.

שאלה נוספת-האם אפשר מתוך פונקציה בC ליצור משתנה שיהיה רלוונטי גם אחרי שהפונקציה "תמות"?משמע היא יוצרת משתנה שפשוט לא "מת" ברגע שהפונקציה מסיימת את פקידה.


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  מכתב ronen333  25.12.09 08:26 1
     אני לא חושב שזו הייתה הכוונה שלו ב-2. ldan192  25.12.09 11:13 2
         כן בדיוק נפל לי האסימון בבוקר שזה malloc. the crusher 25.12.09 11:30 3
     על הData segment הזה לא ניתן לשנות כלום? the crusher 25.12.09 11:31 4
         זה אזור בEXE שנכתב בזמן קימפול DLN 25.12.09 12:02 5

       
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   08:26   25.12.09   
אל הפורום  
  1. מכתב  
בתגובה להודעה מספר 0
 
   1.אתה מקצה את s על ה DATA SEGMENT ,כשמקצים מחרוזות בצורה של
char* = "SOME STRING"
אתה מקבל בעצם מצביע ל DATA SEGMENT והמחרוזת שבו היא CONST ולכן אין ביכולתך לשנות אותה ולכן אתה מקבל את השגיאה הזאת.
2.כן , באמצעות static. אם תוסיף משתנה static לפונקציה הוא יחיה עד סוף התוכנית.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   11:13   25.12.09   
אל הפורום  
  2. אני לא חושב שזו הייתה הכוונה שלו ב-2.  
בתגובה להודעה מספר 1
 
אתה צריך פשוט להקצות מקום עם malloc (ולא לשכוח לשחרר אותו גם בסיום עם free) בכדי שהזכרון ישאר בכל שלבי התוכנית.
סטטי זה גם נכון, אבל סטטי שווה ערך למשתנה גלובאלי - שזה תכנות גרוע.


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
the crusher
חבר מתאריך 1.8.02
18936 הודעות
   11:30   25.12.09   
אל הפורום  
  3. כן בדיוק נפל לי האסימון בבוקר שזה malloc.  
בתגובה להודעה מספר 2
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
the crusher
חבר מתאריך 1.8.02
18936 הודעות
   11:31   25.12.09   
אל הפורום  
  4. על הData segment הזה לא ניתן לשנות כלום?  
בתגובה להודעה מספר 1
 
   תוכל להסביר קצת על הדייטא סגמנט בבקשה?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
DLN
חבר מתאריך 20.4.07
15884 הודעות
   12:02   25.12.09   
אל הפורום  
  5. זה אזור בEXE שנכתב בזמן קימפול  
בתגובה להודעה מספר 4
 
   מכיל את כל הסטרינגים והמשתנים הסטטיים (והגלובליים) שלך ועוד הרבה דברים
אתה לא יכול לכתוב לשם בזמן ריצה תחת נסיבות רגילות


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net