איך מחזירים סטרינג בפונקציה בC?

  • פותח הנושא nhfk
  • פורסם בתאריך

nhfk

משתמש סופר מקצוען
הנדסת תוכנה
עיצוב ואדריכלות פנים
הוא מזהיר שאני מחזירה ערך לוקאלי.
הפונקציה הזו:
קוד:
char* findNameLabel(char line[], int i, char end)
{
    int count =0;
    char nameLabel[32];
    while(!(line[i] == end) && line[i])
    {
        count++;
    }
    strncat(nameLabel,line+i,count);
    return *nameLabel;
}
 

nhfk

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

מ.ש.

משתמש מקצוען
הנדסת תוכנה
D I G I T A L
האמת שהוספתי את הכוכבית שם עכשיו
זה פותר את הבעיה?
לא הבנתי. אם לא הכוכבית, אז איך החזרת את זה כמערך?
(לא נגעתי בC יותר מחמש שנים... אז יכול להיות שזה סתם מהזכרון...,
למרות שמאד אהבתי את נושא המצביעים:))
 

nhfk

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

מ.ש.

משתמש מקצוען
הנדסת תוכנה
D I G I T A L
לכאורה.
זה שגיאת זמן ריצה, או שגיאת קומפילציה?
 

nhfk

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

nhfk

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

nhfk

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

efrat1234567890

משתמש חדש
הוא מזהיר שאני מחזירה ערך לוקאלי.
הפונקציה הזו:
קוד:
char* findNameLabel(char line[], int i, char end)
{
    int count =0;
    char nameLabel[32];
    while(!(line[i] == end) && line[i])
    {
        count++;
    }
    strncat(nameLabel,line+i,count);
    return *nameLabel;
}
אם את רוצה להחזיר סטרינג את צריכה להצהיר על משתנה גלובלי מחוץ לפונקציה ואז אותו להחזיר בפונקציה כמובן עם גישה לכתובת ע"י כוכבית
בהצלחה:)
 

nhfk

משתמש סופר מקצוען
הנדסת תוכנה
עיצוב ואדריכלות פנים
מוסיפים
קוד:
-g
לדגלים של הקומפילציה,
ומריצים עם דיבאגר:
קוד:
gdb --args <program [args]>
במייקפייל מוסיפים את הדגל לכל השורות?
כי ככה הוא נראה עכשיו
1598435971201.png

וכשאני מריצה את מה שכתבת
1598436025858.png
 

ירושל

משתמש מקצוען
במייקפייל מוסיפים את הדגל לכל השורות?
כן, לכל שורה שמקמפלת קובץ מקור (מ-C ל-O)

וכשאני מריצה את מה שכתבת
הכוונה לשם התכנית והארגומנטים שלה.
נניח, אם תמיד שורת ההרצה היא
קוד:
./my_program arg1 arg2
אז בדיבאגר השורה תהיה
קוד:
gdb --args ./my_program arg1 arg2
 

אולי מעניין אותך גם...

הפרק היומי

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


תהילים פרק קמז

א הַלְלוּיָהּ כִּי טוֹב זַמְּרָה אֱלֹהֵינוּ כִּי נָעִים נָאוָה תְהִלָּה:ב בּוֹנֵה יְרוּשָׁלִַם יְהוָה נִדְחֵי יִשְׂרָאֵל יְכַנֵּס:ג הָרֹפֵא לִשְׁבוּרֵי לֵב וּמְחַבֵּשׁ לְעַצְּבוֹתָם:ד מוֹנֶה מִסְפָּר לַכּוֹכָבִים לְכֻלָּם שֵׁמוֹת יִקְרָא:ה גָּדוֹל אֲדוֹנֵינוּ וְרַב כֹּחַ לִתְבוּנָתוֹ אֵין מִסְפָּר:ו מְעוֹדֵד עֲנָוִים יְהוָה מַשְׁפִּיל רְשָׁעִים עֲדֵי אָרֶץ:ז עֱנוּ לַיהוָה בְּתוֹדָה זַמְּרוּ לֵאלֹהֵינוּ בְכִנּוֹר:ח הַמְכַסֶּה שָׁמַיִם בְּעָבִים הַמֵּכִין לָאָרֶץ מָטָר הַמַּצְמִיחַ הָרִים חָצִיר:ט נוֹתֵן לִבְהֵמָה לַחְמָהּ לִבְנֵי עֹרֵב אֲשֶׁר יִקְרָאוּ:י לֹא בִגְבוּרַת הַסּוּס יֶחְפָּץ לֹא בְשׁוֹקֵי הָאִישׁ יִרְצֶה:יא רוֹצֶה יְהוָה אֶת יְרֵאָיו אֶת הַמְיַחֲלִים לְחַסְדּוֹ:יב שַׁבְּחִי יְרוּשָׁלִַם אֶת יְהוָה הַלְלִי אֱלֹהַיִךְ צִיּוֹן:יג כִּי חִזַּק בְּרִיחֵי שְׁעָרָיִךְ בֵּרַךְ בָּנַיִךְ בְּקִרְבֵּךְ:יד הַשָּׂם גְּבוּלֵךְ שָׁלוֹם חֵלֶב חִטִּים יַשְׂבִּיעֵךְ:טו הַשֹּׁלֵחַ אִמְרָתוֹ אָרֶץ עַד מְהֵרָה יָרוּץ דְּבָרוֹ:טז הַנֹּתֵן שֶׁלֶג כַּצָּמֶר כְּפוֹר כָּאֵפֶר יְפַזֵּר:יז מַשְׁלִיךְ קַרְחוֹ כְפִתִּים לִפְנֵי קָרָתוֹ מִי יַעֲמֹד:יח יִשְׁלַח דְּבָרוֹ וְיַמְסֵם יַשֵּׁב רוּחוֹ יִזְּלוּ מָיִם:יט מַגִּיד (דברו) דְּבָרָיו לְיַעֲקֹב חֻקָּיו וּמִשְׁפָּטָיו לְיִשְׂרָאֵל:כ לֹא עָשָׂה כֵן לְכָל גּוֹי וּמִשְׁפָּטִים בַּל יְדָעוּם הַלְלוּיָהּ:
נקרא  2  פעמים

ספירת העומר

לוח מודעות

למעלה