עבור לתוכן

צריך הסברים לשימוש בפוינטרים ב- C (מצביעים\Pointers)

Featured Replies

פורסם

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

אני צריך ללמוד את זה ברמה פשוטה מאוד לא יותר!!!

תודה רבה לעוזרים!

אפילו קטע תוכנית קצר מאוד יוכל לעזור.

אגב - זה קמת דחוף לי כי מחר יש לי מתכונת :)

תודה!

פורסם

טוב שנזכרת...

מגדירים פויינטר:


type *name;

כאשר TYPE זה סוג הפויינטר, וNAME זה שם הפויינטר.

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

כדי להקצות:

name = (type *)malloc(sizeof(type)*1);

עשיתי כפול 1 מכיוון שזה מספר האיברים שאתה רוצה להקצות(יותר בשביל מערך).

MALLOC מוגדרת בספקייה malloc.h, ואתה חייב להכיל את הספריות malloc.h או stdlib.h אם אתה משתמש באחת מהפונקיות שלה במקום אחר בתוכנית.

גישה לנתונים בפויינטר:

*name

ואם TYPE שלך הוא STRUCT, יש לך אופרטור מקוצר כדי להגיע לממברים שלו:

name->member1

שזה קיצור של:

(*name).member1

כמו כן, אם הקצאת יותר מאיבר אחר:

name[0]->member1

או

name[1]->member1

אסור לך לשכוח לשחרר את הזיכרון שלך בסוף התוכנית(בשפות חדשות יותר זה לא קיים, שים לב):

free(name);

מקווה שעזרתי.

פורסם
  • מחבר

תודה רבה! :xyxthumbs:

למרות שהתכוונתי למשהו אפילו יותר פשוט אבל גם זה יעזור!

תודה!

ארכיון

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

דיונים חדשים