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

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



  #1  
ישן 04-02-2015, 23:41
  תוכניתן תוכניתן אינו מחובר  
 
חבר מתאריך: 07.10.08
הודעות: 193
CPP מבנים והקצאה דינאמית

לדוגמא הקוד הבא
קוד PHP:
 struct Course
{
    
int id;
    
char *name;
    
int mark;
};
struct Person
{
    
int id;
    
Course arr[10];
    
charname;
}; 


ידוע לי מה הקוד הבא עושה

קוד PHP:
 Personpersons = new Person[30]; 
?
ניצור persons שהוא מופע של Person
בעצם הוא מערך של זיכרון דינאמי בגודל 30 שכל תא כמובן הוא המבנה הנ"ל
עכשיו ...
השורה הזאת
קוד PHP:
 (*persons).arr[3].name = new char[strlen("infi")+1]; 
ההסבר שלה "1) מקצה 5 מקומות עבור השם של הקורס הרביעי של התלמיד הראשון"
אני לא מבין מדוע
2 שאלות
1- איך ניתן לגשת לתא name במבנה קורס שמוגדר כ CHAR ולהזין לו מערך דינאמי? אם הוא היה מוגדר ב POINTER מילא...אבל הוא CHAR
2- אם הייתי כותב
קוד PHP:
 (persons).arr[3].name = new char[strlen("infi")+1]; 

(הורדתי את הכוכבית) מה היה קורה?
אני יודע שתמיד ב POINTR שמציגים כוכבית לפני בקוד(לא בהצהרה) זה אומר לתוכנית לגשת למקום שהPOINTER מצביע עליו
אבל אם מורידים את הכוכבית מה קורה?

תודה רבה
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #2  
ישן 04-02-2015, 23:55
צלמית המשתמש של DeepSpace
  DeepSpace DeepSpace אינו מחובר  
 
חבר מתאריך: 23.09.03
הודעות: 12,126
בתגובה להודעה מספר 1 שנכתבה על ידי תוכניתן שמתחילה ב "CPP מבנים והקצאה דינאמית"

ציטוט:
במקור נכתב על ידי תוכניתן
1- איך ניתן לגשת לתא name במבנה קורס שמוגדר כ CHAR ולהזין לו מערך דינאמי? אם הוא היה מוגדר ב POINTER מילא...אבל הוא CHAR


תסתכל טוב, הוא * char.

ציטוט:
במקור נכתב על ידי תוכניתן
2- אם הייתי כותב
קוד PHP:
 (persons).arr[3].name = new char[strlen("infi")+1]; 

(הורדתי את הכוכבית) מה היה קורה?
אני יודע שתמיד ב POINTR שמציגים כוכבית לפני בקוד(לא בהצהרה) זה אומר לתוכנית לגשת למקום שהPOINTER מצביע עליו
אבל אם מורידים את הכוכבית מה קורה?

תודה רבה


תנסה בעצמך, זה לא עובר קומפילציה.
אם תשנה את הנקודה ל- <- זה יעבוד.
_____________________________________
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning. -Rick Cook


נערך לאחרונה ע"י DeepSpace בתאריך 04-02-2015 בשעה 23:58.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

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

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

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

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



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

הדף נוצר ב 0.05 שניות עם 12 שאילתות

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

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