הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 11-06-10, 23:45   # 1
Vitalist
חבר וותיק
 
Vitalist's Avatar
 
מיני פרופיל
תאריך הצטרפות: Dec 2005
מיקום: קרית אתא
גיל: 33
הודעות: 1,579

Vitalist לא מחובר  

מימוש מערך דו-מימדי ב- C++

היי,
תגידו משהו יודע איך נראה הזיכרון במערך דו-מימדי של C++?

במערך רגיל הזיכרון יושב ברצף.
איך זה במערך דו-מימדי?
ההשערה שלי שאם נגיד:
a[x][y]
הוא המערך, אז גם פה הזיכרו יש בצורה רצופה שקודם
a[0][0-y]
ואז
a[1][0-y], a[2][0-y]
וכך הלאה....
מה הדרך הנכונה? אני צודק?
  Reply With Quote
ישן 11-06-10, 23:57   # 2
Shay Ben Moshe
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2007
הודעות: 1,397

Shay Ben Moshe לא מחובר  

אני לא כתבתי מעולם בC או בC++ אבל קראתי ספר על C וקראתי גם באינטרנט אז אני אנסה לחשוב בהגיון.
המשתנה של מערכים בשפות האלו הם למעשה pointer לאיזשהו מקום ששם יושבים כל התאים ברצף. מה שקורה כאן זה שיש מערך של פוינטרים כאלו שמצביעים למקומות אחרים בזיכרון ששם זה ברצף.
במילים פשוטות על הזיכרון במקום מסויים ברצף יש את כל האינדקסים של ה[] הראשונים כמצביעים למקומות אחרים רציפים בזכרון שהם המערך שהם מכילים.

זה מה שאני חושב, לא סגור על זה.
__________________
שי בן משה - בונה אתרים
חותך אתרים, ומתכנת צד לקוח וצד שרת.
  Reply With Quote
ישן 12-06-10, 00:33   # 3
Vitalist
חבר וותיק
 
Vitalist's Avatar
 
מיני פרופיל
תאריך הצטרפות: Dec 2005
מיקום: קרית אתא
גיל: 33
הודעות: 1,579

Vitalist לא מחובר  

הסיבה שאני חושב שמה שאתה אומר פחות הגיוני, זה זה שאי אפשר לכתוב פונקציה כזאת:
void func3(int vec[][])
ואם הזיכרון ממומש כפי שאתה חושב אני לא רוצה סיבה שזה יהיה בלתי אפשרי.
לעומת זה הדרך שאני חושב דווקא כן מסבירה את זה.
  Reply With Quote
ישן 12-06-10, 00:47   # 4
Shay Ben Moshe
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2007
הודעות: 1,397

Shay Ben Moshe לא מחובר  

נסה את זה:
קוד:
void func3(int **vec)
אני מזכיר, אני לא מתכנת C/C++
__________________
שי בן משה - בונה אתרים
חותך אתרים, ומתכנת צד לקוח וצד שרת.
  Reply With Quote
ישן 12-06-10, 01:22   # 5
liorclub
חבר על
 
מיני פרופיל
תאריך הצטרפות: Jan 2007
גיל: 39
הודעות: 756
שלח הודעה באמצעות ICO אל liorclub שלח הודעה באמצעות MSN אל liorclub

liorclub לא מחובר  

בשפת C\C++ הזכרון מופיע ברצף, כל השורה הראשונה של המערך
לאחר מכן כל השורה השניה - כך שסוף השורה הראשונה צמוד לתחילת השורה השנייה וכן הלאה
לדוגמא
מטריצה מסוג 3X3 עם המספרים הבאים
7 - 15 - 28
9 - 2 - 3
16 - 18 - 10
מסודר בזכרון בצורה הבאה:
28-15-7-3-2-9-10-18-16

מקווה שעזרתי..
__________________
ליאור
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 16:20.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ