ABA


"עזרה קטנה בבעיה בכתיבת תוכנית בC"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #10476 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 10476
dok
חבר מתאריך 28.10.16
8 הודעות, דרג אמינות חבר זה
   10:16   17.09.11   
אל הפורום  
  עזרה קטנה בבעיה בכתיבת תוכנית בC  
 
   אני צריך להקצות זיכרון למבנה מקונן ומשהו שם לא מסתדר לי ולא מקצה זכרון למבנה האחרון, הוא מקצה להכל, אבל לפרמטרים שאותם אני צריך להכניס בSCANF הוא לא מקצה.
הנה הקוד:

https://rotter.name/User_files/nor/4e7449583559e30b.txt

אני תקוע על זה כבר שעות..המון תודה!



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

  האשכול     מחבר     תאריך כתיבה     מספר  
  אז ככה VeNom  17.09.11 10:41 1
     אחי שיחקת אותה לגמרי.. dok 17.09.11 10:55 2
         אחלה..גם אתה חידשת לי עם הריאלוק.. VeNom  17.09.11 11:11 3

       
VeNom  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 7.6.02
7922 הודעות, 1 פידבק, 2 נקודות
   10:41   17.09.11   
אל הפורום  
  1. אז ככה  
בתגובה להודעה מספר 0
 
   במיין שאתה מבצע את הפעולה הזו:

RECORD* rec=(RECORD*)malloc(10*sizeof(RECORD*));
rec->poly = NULL; // this is for the second section of this message.

אתה בעצם רוצה ליצור סוג של מערך של 10 רקורדים(ולא ל 10 פוינטרים לרקורד).
ולכן אתה צריך לכתוב את זה ככה:

RECORD* rec=(RECORD*)malloc(10*sizeof(RECORD));

ואתה נופל בפונקציה ADD שאתה מבצע ריאלוק על POLY.
ריאלוק רוצה לקבל את הכתובת של POLY כפרמטר(אבל אין כזה בהתחלה(הכתובת היא זבל אם לא אתחלת אחרת)..הייתי מייעץ לך לאתחל אותו ב NULL..ובפונקציה לשאול אם POLY הוא NULL תבצע הקצאת זכרון ראשונית ע"י מאלוק ורק אחרת תבצע ריאלוק עליו).
משהו כזה:


if(!rec->poly) // if rec->poly is null
rec->poly = (POLIGON*)malloc(sizeof(POLIGON));
else
rec->poly=(POLIGON*)realloc(rec->poly,2*sizeof(POLIGON));

עכשיו אין לי מושג מה אתה רוצה לעשות שם מבחינה לוגית..התייחסתי נטו לסינטקס שגרם לקריסות..אל תשכח לשחרר את כל ההקצאות של הזכרון(על כל מאלוק כזה צריך להיות לך FREE ולא רק על REC במיין).


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
dok
חבר מתאריך 28.10.16
8 הודעות, דרג אמינות חבר זה
   10:55   17.09.11   
אל הפורום  
  2. אחי שיחקת אותה לגמרי..  
בתגובה להודעה מספר 1
 
   שכחתי לאתחל אותו בNULL!
אין צורך בIF כי REALLOC מתנהג כמו MALLOC בהתחלה אבל אתה תותח עזרת לי בדיוק בנק' שפיספסתי!
תודה רבה



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
VeNom  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 7.6.02
7922 הודעות, 1 פידבק, 2 נקודות
   11:11   17.09.11   
אל הפורום  
  3. אחלה..גם אתה חידשת לי עם הריאלוק..  
בתגובה להודעה מספר 2
 
  


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

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

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



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