6 תשובות
אולי אני
שואל השאלה:
תודה לכל התורמים.
הבנתי למה
אנונימית
שואל השאלה:
כדי נוכל לדעת כמה בתים להמשיך לקרוא אם מדובר ב משתנה int והמצביע הוא char אנחנו נקרא אך ורק בית אחד ולא את כל ארבע וגם להפך אפשר לגרום לגישה לכתובות לא מורשות
זאת התשובה בכללי למי שרוצה. (אני רואה אתכם מגשימיסטים צעירים)
הרגע קלטתי שלא כתבתי את השאלה פה בכלל
אנונימית
זה מה שהתכוונתי
אם תצטרכי עזרה בc אולי אני אוכל לעזור (כתבתי קצת בc)
האמת שעד עכשיו לא שמתי לב לשאלה..

הוא לא צריך להיות.
את יכולה להצביע למה שבא לך בזיכרון ולהסתכל על זה כפויינטר למה שבא לך... (ולעשות casting מפה לשם)
לפעמים יש מצבים שאין מה לעשות והוא לא. ואז ברגע שרוצים לעשות איתו משהו מעניין אז עושים casting.

אבל זה כמובן יכול להוביל לקוד פחות קריא.
ודבר נוסף שבאריתמטיקה של מצביעים, כאשר את מגדילה ערך של פוינטר, הקומפיילר למעשה מגדיל את ערך המשתנה ביחידות שמתאימות לגודל סוג הפויינטר, כאשר void או char יהיו גודל 1, int יהיה 4, long 8, (וזה תלוי מכונה) ... איזשהו מבנה מיוחד שהגדרת יכול להיות משהו שרירותי אחר...
כך שאם לא תהיי מודעת לאריתמטיקה של מצביעים ולא תחזיקי את הטיפוס הנכון, את עלולה לקבל באגים מעניינים. (וכמובן לא תהיה שגיאת קומפילציה כי בc אפשר לעשות כמעט הכל...)