פורסם 2014 ביולי 911 שנים קיבלתי היום משימה במכללה ליכתוב פונקציה ב C שמקבלת ווקטור ומחזירה פוינטר לכל תא בווקטורוכמו כן גם תוכנית void main שמדפיסה את המשתנה הנל מהפונקציה על פניו המשימה קלה אבל אני לא יודע איך אני מחזיר פוינטר מפונקציהאו איך אני קורא לפונקציה שהערך המוחזר הוא הפוינטרint *asfor i=1 i=sizeof(x) i++as(i)=&x(i)endreturn(as)תודה רבה לכל העוזרים נערך 2014 ביולי 911 שנים על-ידי iliagildin
פורסם 2014 ביולי 911 שנים מה זה וקטור? אתה מתכוון למערך? (ב-C אין כזה דבר שנקרא וקטור)השאלה שלך לא ברורה, וגם הקוד לא. למה שלא תעלה את הקוד האמיתי?
פורסם 2014 ביולי 1011 שנים מחבר ווקטור הינו מערך חד מימדי (לידע כללי מטריצה הינה מערך דו מימדי) פשוט חשבתי שאם אתם תראו לי איך לעשות למערך חד מימדי אני כבר ידע לעשות למערך דו מימדי הרי רק צריך לשנות לולאה ולהוסיף כמובן עוד לולאה. התוכנית שכתבתי הינה התוכנית שלי אני פשוט לא יודע איך להגדיר פונקציה שתחזיר פוינטר ואיך ליקרוא לאותה פונקציה מה VOID MAIN תודה רבה לכל העוזרים
פורסם 2014 ביולי 1011 שנים פונקציה מחזירה פוינטר בדיוק כמו שפונקציה מחזירה כל דבר אחר. במקום לדוגמה להחזיר int הפונקציה צריכה להחזיר *int.עדיין לא הבנתי מה אתה רוצה ש"יראו לך". אם אתה רוצה עזרה עם תרגיל, אז תעלה לכאן את התרגיל ותגיד בדיוק איפה אתה מתקשה. אם אתה כותב קוד, אז תכתוב קוד אמיתי, לא משהו שרק קצת נראה כמו קוד כמו שכתבת בהודעה הראשונה. נערך 2014 ביולי 1011 שנים על-ידי שניצל
פורסם 2014 ביולי 1011 שנים מחבר אני רוצה שיקחו את הקטע קוד שלי שעובד כאשר הוא ב VOID MAIN יכניסו אותו לפונקציה ויראו לי איך ליקרוא לאותה פונקציה מה VOID MAIN(מקווה שאני לא נישמע חוצפן הטון רגוע לחלוטין אני פשוט לא יודע איך ליכתוב הודעה זו אחרת)
פורסם 2014 ביולי 1011 שנים מחבר התרגיל הוא לקחת מערך להכניס אותו לפונקציה אשר מחזירה מערך כאשר כל תא במערך הוא הערך של הפוינטר למערך המקורילא מבין מה לא ברור
פורסם 2014 ביולי 1011 שנים מחבר [CENTER] include #stdio.h void main(){int x[9];int *rt[9]; x={1, 2, 3, 4, 5, 6, 7, 8, 9}; rt*=myfunc(x[]); printf("everything I want: %x\n", rt);} int* myfunc(x[]){[9]int *cdfor (i=1 i=sizeof(x) i++){cd[i]=&x[i];end[/CENTER][center][indent=2]}return(cd)}זה הקוד שלי כל מה שאני רוצה זה שהוא ידפיס לי את המשתנה rt שבו ימצאו כל הקטובות של הערכים שבמשתנה xלא מבין מה לא בסדרתודה רבה לכל העוזרים נערך 2014 ביולי 1011 שנים על-ידי iliagildin
פורסם 2014 ביולי 1011 שנים הקוד הזה הוא לא קוד C חוקי, אפילו לא קרוב לכך. נראה לי שאתה צריך קודם לחזור על חומר קצת יותר בסיסי...אבל לשאלתך: יש שתי דרכים להחזיר מערך מתוך פונקציה.הדרך הראשונה היא שהפונקציה לא תיצור את המערך, אלא תקבל אותו מבחוץ ורק תמלא אותו. דהיינו, myfunc צריכה להיראות ככה:void myfunc(int x[], int* result[]) { ... }שים לב ש-result הוא מערך של מצביעים ל-int, והפונקציה צריכה למלא אותו. האחריות על להקצות את המערך הזה היא של מי שקורא לפונקציה (במקרה שלך זה ה-main).הדרך השנייה היא שהפונקציה בעצמה תקצה את המערך באמצעות malloc, ותחזיר מצביע אליו. שים לב שכיוון שזה מערך של מצביעים, הפונקציה צריכה להחזיר מצביע למערך של מצביעים, כלומר מצביע למצביע, ככה:int** myfunc(int x[]) { ... }בתוך הפונקציה היא צריכה לעשות malloc למערך בגודל המתאים. האחריות של ה-main כרגע היא רק לשחרר את המערך הזה (ע"י free) בסוף העבודה איתו.יש מבין?
פורסם 2014 ביולי 1011 שנים מחבר את השיטה השניה לא הבנתי אבל בשיטה הראשונה מה הבעיה של הפונקציה להחזיר לי את result ל main?
פורסם 2014 ביולי 1011 שנים אם הפונקציה קיבלה מצביע למערך קיים ופשוט מילאה אותו, אז למה אתה צריך שהיא תחזיר לך את התוצאה? הרי כתובת וגודלו של המערך ידוע מראש...המקרה היחיד שתרצה בכל זאת להחזיר משהו זה אם הייתה לך שגיאה והיא תחזיר ערך שמייצג שגיאה מסויימת.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.