שלום. שאלה ב c++. - עמוד 2 - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

שלום. שאלה ב c++.


matliv

Recommended Posts

1. אם הבנתי נכון אז ככה.

כשאתה מעביר new1+t לפונקציה כאשר new1 זה מערך אז מה שהוא מעביר בעצם לפונקציה זה את המיקום (ולא את האיבר, וזה אולי מה שמטעה) של האיבר בזיכרון לדוגמא אם התוכנית מצאה לנכון להקצות במקום מספר 400 בזיכרון למערך בגודל עשר, וייצוג של int בזיכרון הוא 4 ביטים אז אם יש לנו מערך בגודל 10 הוא יראה בזיכרון ככה:

[ 400 ] [ 404 ] [ 408 ] [ 412 ] [ 416 ] [ 420 ] [ 424 ] [ 428 ] [ 432 ] [ 436 ]

אז new1 בעצם מצביע לנו על מקום 400 בזיכרון והוא משוג int אז הוא יודע שהאיבר שהוא מצביע עליו הוא בגודל 4 ביטים.

מה שקורה new1 + 1 בעצם לא מצביע למקום 401 בזיכרון, אלא למקום 404 בגלל שהוא מסוג int שהוא בגודל 4 ביטים.

עכשיו מה שקורה זה ככה, נגיד והעברנו לפונקציה את new1 + 1 אז בעצם x שהוא פוינטר קיבל להצביע על מקום 404 בזיכרון.

אז בעצם *x זאת אומרת הערך שנמצא במקום שפוינטר מצביע אליו זה x [ 0 ] וזה בעצם new[1] .

אני מניח שלא הייתי ברור בכל הקטע הזה, אבל כל הקטע של הפורום קצת מגביל אז קשה לי אישית להתבטא פה יותר מדי:)

2. האפשרות היחידה שתראה לך יפה זה להגדיר מערך גלובלי שלכל הפונקציות יש גישה אליו, ובפונקציה להעביר את המיקום שרוצים לשנות, כלומר את b,t ולא new1+t והשני שאני לא זוכר מהו כרגע :)

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

ארכיון

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

×
  • צור חדש...