עזרה בC

michaeler

New member
עזרה בC

מישהו יכול להסביר לי מה קורה פה? זה מגיע לשורה הנכונה ומדפיס לי "אני עומד להחזיר -1" ואז מחזיר לי ערך אחר בכלל(את הגודל של המערך משום מה). מה עשיתי לא נכון?
הערכים שאני נותן בפונקציה הם מערך שכולו אפסים, i וj מקבלים אפס והאחרון את גודל המערך.
 

BravoMan

Active member
האמת שזה פלא שאתה בכלל מקבל משהו הגיוני

חזרה!

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

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

אבל, בקוד שלך אחרי ה-if האחרון יש עוד שורת קוד (האחרונה בפונקציה), שבה יש קריאה רקורסיבית, אבל אין return.
כלומר, הפונקציה שלך למעשה מתעלמת מהערך החוזר של הקריאה הבאה בתור, וגם לא מחזירה כלום.

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