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

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



  #16  
ישן 28-01-2011, 21:49
  The_Equivocator The_Equivocator אינו מחובר  
 
חבר מתאריך: 11.02.04
הודעות: 16,543
בתגובה להודעה מספר 15 שנכתבה על ידי fap שמתחילה ב "שאלתי אותו "איך אני משחרר את..."

ציטוט:
לדעתי תמיד עדיף שפונקציה תדע לנקות אחריה במקום להשאיר את זה למי שמשתמש בה.

לא ברור לי כיצד מצד אחד אתה מתכוון לשחרר את הזכרון, מחד גיסא להשתממש בו לאחר מכן, אין בזה כל הגיון לוגי. זה ברור שפונקציה צריכה בסיומה למחוק את כל הזכרון שאין בו עוד צורך, אבל במקרה שלך, אתה ממש משתמש בכל הזכרון, שהפונקציה יצרה, בכדי לקרוא אחר-כך את המילה.. ולכן אין לך ממש דרך אחרת.
הדרך של RP היא אומנם נחמדה, אבל היא כבר קשורה לOO, בעוד שאתה כרגע מתכנת בC..

מה גם שבאמת לא ממש הבנתי את כוונתו של RP..

ציטוט:
מה שאתה צריך זה לבנות קלאס string עם מתודה dupstring ושיהיה לו destructor שיקרא באופן אוטומטי ברקע שתצא מה-scope שבו הוגדר המשתנה.


כלומר אני מכיר את כל המושגים, אבל לא ממש ברורה לי כוונת המשורר..

נערך לאחרונה ע"י The_Equivocator בתאריך 28-01-2011 בשעה 21:57.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #20  
ישן 29-01-2011, 12:20
  Dark Knight Dark Knight אינו מחובר  
 
חבר מתאריך: 30.07.05
הודעות: 949
שלח הודעה דרך ICQ אל Dark Knight
בתגובה להודעה מספר 19 שנכתבה על ידי fap שמתחילה ב "עוד שאלה קטנה..."

משתנים לוקאליים של פונקציה נוצרים על המחסנית. זה נכון לכל סוגי מהשתנים - גם למערכים.
כאשר אתה מחזיר מפונק' מערך, אתה מחזיר, למעשה, מצביע לתא הראשון במערך - וזה מספיק כדי לייצג את המערך כולו שכן מערך, בהגדרתו, הוא תחום זיכרון רציף.
כאשר הפונק' מסיימת את עבודתה, חלק המחסנית שהוקצא לפונק' משוחרר והמידע שנשמר בו קודם הופך ללא מוגדר.
כדי להחזיר מערך מתוך פונק' יש 2 אפשרויות:
1. להגדיר את המערך כמשתנה סטטי, ואז המערך ישמר למעשה באיזור הזיכרון השמור למשתנים גלובאליים וישאר מוגדר גם אחרי שהפונק' תסתיים וישמור את הנתונים גם בקריאה הבאה של הפונק'
2. הדרך הנכונה יותר היא להקצות את המערך על ה-heap, כלומר להקצות אותו דינאמית בעזרת new ולהחזיר את הזיכרון שהוקצא (כמובן לא לשכוח לשחרר אותו בסוף)
_____________________________________
חתימתכם הוסרה כיוון שלא עמדה בחוקי האתר. לפרטים נוספים לחצו כאן. תוכלו לקבל עזרה להתאמת החתימה לחוקים בפורום חתימות וצלמיות.

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

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

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

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

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



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

הדף נוצר ב 0.08 שניות עם 10 שאילתות

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

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