בעיה בC - הליך ופוינטר. - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

בעיה בC - הליך ופוינטר.


ramil19

Recommended Posts

יש לי הליך כזה:


void delstr(char *pstr,int delnum)
{
char *tmpstr;
...
free(pstr);
pstr=tmpstr;
}

ההליך

delstr

מקבל מצביע לתו ושלם.

לא משנה עכשיו מה זה עושה בפנים, מה שבפנים עובד חלק.

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

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

אבל מה, למשהו זה לא מקבל את זה. הפוינטר pstr לא מתנהג אחרי זה בתוכנית כאילו הוא קיבל את הכתובת של התא אליו מפנה TMPSTR.

(במהלך main יש

delstr(pstr,2);

יש לציין שאם אני מנסה לעבוד עם PSTR בתוך ההליך ולא בMAIN, אז הוא עובד אחרי ההשמה כאילו היא באמת בוצעה... מה קורה פה? :s05: :s07:

קישור לתוכן
שתף באתרים אחרים

אתה צריך להעביר ל-delstr את הכתובת שבה מוחזק המצביע (כלומר &pstr) ושהפונקציה תקבל מצביע למצביע (והקוד שלה יהיה בהתאם)

שינוי של pstr בתוך הפונקציה לא משפיע על המשתנה בחוץ.

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...