פונקציית realloc למטריצה ב C - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון
  • מי אנחנו?

    שלום אורח/ת!

     
    שים לב - על מנת להשתתף בקהילה שלנו, להגיב ולפתוח דיונים חדשים, עליך להצטרף כחבר רשום.

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

    לא אוהבים שמציקים לכם במייל? ניתן להירשם לאתר אך לוותר על הרישום לעידכוני המייל השבועיים.

פונקציית realloc למטריצה ב C


Recommended Posts

יש לי את התרגיל הבא:

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

אני מנסה כרגע לפתור ויש לי בעיה - משום מה ברגע שאני עושה REALLOC למטריצה - הערכים משתבשים.

(הREALLOC למערך הפנימי של המטריצה בשורה האפס עובד מצוין)

הקוד:

(פחות חשוב לי עכשיו הנכונות של הפתרון, אלא הבעיה שיש לי )

c code.docx

לאחר איטרציה אחת של הלולאה זה הערך במטריצה:

mat1 = 0x00000230d6c50850 {0x00000230d6c55250 "hellow"}‎‎‎‎

לאחר ה REALLOC :

{<mat1 = 0x00000230d6c552a0 {0xcdcdcdcdcdcdcd50 <Error reading characters of string.

מה הבעיה?

ניסיתי להדפיס את הגודל של המטריצה (sizeof)  לפני ואחרי ה realloac והוא לא השתנה - נשאר 8, (אמור להפוך ל - 16) כלומר ה REALLOC משום מה לא עובד. אני יודעת שאם אין מקום להקצאה חוזר NULL, אבל לא נראה לי הגיוני שזה מה שקרה פה כי זה מספרים מאד קטנים ואין הגיון שאיו מקום, וחוץ מזה לא חוזר NULL אלא איזושהי כתובת מוזרה אחרת....

תודה מראש!

 

נערך על-ידי גינגית
קישור ישיר להודעה
שתף באתרים אחרים

באגים שאולי קשורים ואולי לא:

  • את עושה malloc(sizeof(char)) בשעה שצריך להיות malloc(sizeof(char*)).
  • while (*str1!= ' '&&*str1!='0')  צריך להיות '\0' ולא '0'.
  • לא באג, אבל במקום להגדיל את count, ואז realloc ומייד להקטין, היה פשוט יותר לעשות realloc עם count+1. חוץ מזה שהשם count לא נכון, זה צריך להיות max_index או להתחיל מ1 ולגשת לאינדקס count-1.
  • את לא עושה free בסוף. המרצים יורידו על זה כנראה.

חוץ מזה אני לא רואה באג (ברפרוף). אם הייתי צריך להמר אז (1) זו הסיבה.

נערך על-ידי af db creid
קישור ישיר להודעה
שתף באתרים אחרים

הצטרפ/י לדיון

בשלב זה תוכל/י להצטרף לדיון, ולאחר מכן להצטרף לקהילה שלנו. אם כבר יש לך חשבון אצלנו, אנא התחבר/י עכשיו על מנת להגיב תחת שם המשתמש שלך.
לתשומת לבך: התגובה תופיע לגולשים לאחר אישור של צוות הנהלת הפורומים.

אורח
הוסף תגובה

×   התוכן שהודבק הוא עם עיצוב.   הסר עיצוב

  Only 75 emoji are allowed.

×   הקישור שלך הוטמע אוטומטית.   הצג כקישור רגיל

×   התוכן הקודם שלך שוחזר אוטומטית.   נקה הכל

×   You cannot paste images directly. Upload or insert images from URL.

×
  • צור חדש...

בראש החדשות:

ביוני הכל יסתדר? תערוכת MWC 2021 מתחילה בגרסה מותאמת לקורונה

במקום חגיגת מובייל גרנדיוזית בברצלונה - אנחנו מקבלים אירוע מצומצם יחסית בשנחאי השבוע, ותוכניות לקאמבק אירופאי במהלך חודש יוני הקרוב תערוכת MWC (ר"ת Mobile World Congress) הייתה האירוע הטכנולוגי הבולט הראשון שסבל מנחת ידה של הקורונה בשנה שעברה, עם הגבלות נאיביות בשלב הראשון, ביטול מלא של האירוע הפיזי לאחר מכן - ובמקביל הבטחות לכך שבשנה הבאה הכל יחזור לקדמותו, כאשר סביר להניח כי באותה נקודת זמן אף אחד לא ניחש או ניבא כי גם ב-2021...

חדש באתר