ABA


"עזרה בקוד בשפת C"
גירסת הדפסה        
קבוצות דיון לימודים, מדע ותרבות נושא #21242 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 21242
eli-15 לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 25.9.03
19179 הודעות, 1 פידבק
   17:38   25.05.15   
אל הפורום  
  עזרה בקוד בשפת C  
 
ערכתי לאחרונה בתאריך 25.05.15 בשעה 17:48 בברכה, eli-15
 
אני אמור להכין פונציה שתבצע חיתוך בין שתי קבוצות ותאחד את החיתוך בניהם בקבוצה אחת

(חיתוך = כל האיברים שמשותפים לקבוצה A ו Bׂ)

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

זאת התכנית
https://fbcdn-sphotos-h-a.akamaihd.net/hphotos-ak-xta1/v/t34.0-12/11272148_1066368143378238_1103465641_n.jpg?oh=1f7cfc763d66a0560dd4293b1220cc6f&oe=556531DA&__gda__=1432764955_05cc14cf99a2d3961795dbb05e46ca24

https://fbcdn-sphotos-h-a.akamaihd.net/hphotos-ak-xft1/v/t34.0-12/11354930_1066368136711572_1906046453_n.jpg?oh=55008ddcdcf001a0c3f9a7c783e3afb3&oe=55650C9E&__gda__=1432768556_d07b720aa082c3d82c41a9ef7d2fcb8f

www.facebook.com/tnagarut

תעשיות נגרות
עיצוב וייצור ריהוט בהזמנה


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

  האשכול     מחבר     תאריך כתיבה     מספר  
  על פניו נראה בסדר גמור... Bar  26.05.15 01:21 1
  האנדנטציה נוראית, תנקה את הקוד. למה אתה הולך עד 5 אם אתה מקצה 40 איברים? ldan192  26.05.15 01:27 2
     40 בייטים, כל int הוא 8 בייט... Bar  26.05.15 08:22 3
         צודק, אז ה-for השני בודק i קטן מ-5 ולא j קטן מ-5 ldan192  26.05.15 08:25 4
             וואו איזו חדות עין חחח... הוא פשוט לא נכנס ל-for של ה-j Bar  26.05.15 08:57 5
                 אגב, הסטנדרט הוא ש-int זה 4 בייט (32 ביט), לא 8 בייט (64 ביט) ldan192  26.05.15 09:05 6
                     צודק, טעות שלי, 4 בייט... Bar  26.05.15 09:46 7
         אני מכיר שברוב המערכות int הוא 4 בתים ולא 8 Adielb  26.05.15 18:11 8
  אגב כנס barakm 26.05.15 20:49 9
  דבר ראשון תודה לכולכם על התגובות eli-15 30.05.15 13:25 10

       
Bar  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 24.3.02
24027 הודעות, 7 פידבק
   01:21   26.05.15   
אל הפורום  
  1. על פניו נראה בסדר גמור...  
בתגובה להודעה מספר 0
 
   אם ידוע לך מראש את הגודל של כל קבוצה, למה אתה מקצה אותם דינמית?

נשלח ע"י הסלולרי


He who makes a beast out of himself,
gets rid of the pain of being a man.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   01:27   26.05.15   
אל הפורום  
  2. האנדנטציה נוראית, תנקה את הקוד. למה אתה הולך עד 5 אם אתה מקצה 40 איברים?  
בתגובה להודעה מספר 0
 


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Bar  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 24.3.02
24027 הודעות, 7 פידבק
   08:22   26.05.15   
אל הפורום  
  3. 40 בייטים, כל int הוא 8 בייט...  
בתגובה להודעה מספר 2
 
  


He who makes a beast out of himself,
gets rid of the pain of being a man.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   08:25   26.05.15   
אל הפורום  
  4. צודק, אז ה-for השני בודק i קטן מ-5 ולא j קטן מ-5  
בתגובה להודעה מספר 3
 


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Bar  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 24.3.02
24027 הודעות, 7 פידבק
   08:57   26.05.15   
אל הפורום  
  5. וואו איזו חדות עין חחח... הוא פשוט לא נכנס ל-for של ה-j  
בתגובה להודעה מספר 4
 
   ערכתי לאחרונה בתאריך 26.05.15 בשעה 09:02 בברכה, Bar
 
לפותח האשכול:

בהקצאה הדינמית של המערכים arr1 ו-arr2, למה יש הקצאה רק של 20 בייטים? לפי הלולאות הם מכילים 5 איברים, משמע צריך הקצאה של 40 בייטים כמו של המערך inter.

באופן כללי, כשאתה מקצה דינמית, רצוי להשתמש ב-sizeOf. במקום ה-40 בmalloc הייתי רושם 5*sizeOf(int)


He who makes a beast out of himself,
gets rid of the pain of being a man.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   09:05   26.05.15   
אל הפורום  
  6. אגב, הסטנדרט הוא ש-int זה 4 בייט (32 ביט), לא 8 בייט (64 ביט)  
בתגובה להודעה מספר 5
 
מה שלא ברור לי כי מה שהוא מחשב רק intersection ולא union הקצאה יותר גדולה מהמקור.

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


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Bar  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 24.3.02
24027 הודעות, 7 פידבק
   09:46   26.05.15   
אל הפורום  
  7. צודק, טעות שלי, 4 בייט...  
בתגובה להודעה מספר 6
 
   בגדול כל malloc שלו צריך לקבל 20 בייט, ואם הוא רוצה להיות קפדן אז הוא צריך לבצע realloc עם Counter*4 לintersect


He who makes a beast out of himself,
gets rid of the pain of being a man.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Adielb  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 22.6.11
7352 הודעות, 7 פידבק
   18:11   26.05.15   
אל הפורום  
  8. אני מכיר שברוב המערכות int הוא 4 בתים ולא 8  
בתגובה להודעה מספר 3
 
   32 ביט
ו-long int זה כבר 8 בתים

אבל זה כבר תלוי ארכיטקטורה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
barakm לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 19.5.08
4642 הודעות, 1 פידבק
   20:49   26.05.15   
אל הפורום  
  9. אגב כנס  
בתגובה להודעה מספר 0
 
יש פונקציה שנקראת sizeof באותיות קטנות. זה נראה שלא למדתם כי אתה לא משתמש בה אבל היא ממש ממש פשוטה ויותר נחמדה ממה שעשית כשהקצת דינמית.
אם אני מבין נכון ותקן אותי אני טועה, רצית להקצות 20 ביטים בשביל 5 אינטים נכון?
אתה רשמת ככה

arr1=((int*)malloc(20));

דרך הרבה יותר נחמד זה לרשום ככה:

arr1=(int*)malloc(5*sizeof(int));

מה זה אומר? קודם כל קאסטינג לint*
אחר כך, כמו שזה נשמע בדיוק, 5 כפול תא בגודל אינט. כלומר חמישה תאים של אינטים.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
eli-15 לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 25.9.03
19179 הודעות, 1 פידבק
   13:25   30.05.15   
אל הפורום  
  10. דבר ראשון תודה לכולכם על התגובות  
בתגובה להודעה מספר 0
 
ובוודאי שידעתי על הסייזאוף


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


וכן עליתי על הבעיה כמה שעות אחריי הפוסט אבל תודה בכל מקרה על היחס והתשובות

www.facebook.com/tnagarut

תעשיות נגרות
עיצוב וייצור ריהוט בהזמנה


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

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

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



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