כותב |
|
snaidis אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 27 October 2005 בשעה 17:38 | | IP רשוּם
|
|
|
|
אפשר לדעת מה זה אומר?
int **a
ובשביל מה צריך את זה? ומתי משתמשים בזה?
|
חזרה לתחילת העמוד |
|
|
shoshan מנהל האתר
הצטרף / הצטרפה: 16 July 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 4637
|
נשלח בתאריך: 27 October 2005 בשעה 17:43 | | IP רשוּם
|
|
|
|
מצביעים בשפת C
__________________ עד מתי רשעים יעלוזו?
עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
|
חזרה לתחילת העמוד |
|
|
ניר מנהל האתר
הצטרף / הצטרפה: 12 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 3296
|
נשלח בתאריך: 27 October 2005 בשעה 18:20 | | IP רשוּם
|
|
|
|
מצביע למצביע, או למקרה שאתה רוצה ליצור מערך דינמי של מצביעים.
__________________ מספר האייסיקיו שלי ו/או כתובת ה-MSN שלי אינם מהווים מוקד תמיכה
|
חזרה לתחילת העמוד |
|
|
snaidis אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 27 October 2005 בשעה 19:17 | | IP רשוּם
|
|
|
|
אפשר יותר הסבר על מה זה מערך דינאמי של מצביעים?
|
חזרה לתחילת העמוד |
|
|
חסוי lol אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 27 October 2005 בשעה 19:46 | | IP רשוּם
|
|
|
|
Int a; זה פקודה בC המכניסה משתנה בשם a
|
חזרה לתחילת העמוד |
|
|
Fate פורומיסט על
הצטרף / הצטרפה: 25 October 2005
משתמש: מנותק/ת הודעות: 571
|
נשלח בתאריך: 27 October 2005 בשעה 19:58 | | IP רשוּם
|
|
|
|
מצביע למצביע למספר...
או מצביע למערך חד מימדי של מספרים
או מערך דו מימדי של מספרים...
|
חזרה לתחילת העמוד |
|
|
snaidis משתמש מתחיל
הצטרף / הצטרפה: 24 October 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 25
|
נשלח בתאריך: 27 October 2005 בשעה 21:00 | | IP רשוּם
|
|
|
|
אבל אני ביקשתי הסבר על מה זה מערך דינאמי של מצביעים.
אז מי שיודע אפשר לקבל הסבר?
|
חזרה לתחילת העמוד |
|
|
אבידור משתמש חבר
הצטרף / הצטרפה: 11 October 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 162
|
נשלח בתאריך: 27 October 2005 בשעה 21:00 | | IP רשוּם
|
|
|
|
int a = מספר
int *a = מצביע למספר
int **a = מצביע למצביע למספר או מערך מספרים (הקצאות דינאמיות)
int ***a = מצביע למצביע למצביע למספר או מערך מספרים(הקצאות דינאמיות) וכו'.
|
חזרה לתחילת העמוד |
|
|
SBD פורומיסט על
הצטרף / הצטרפה: 13 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 1194
|
נשלח בתאריך: 27 October 2005 בשעה 21:47 | | IP רשוּם
|
|
|
|
מה כל אחד יגיד את כל מה שזה שלפניו אמר?! הוא שואל אותכם מה זה מערך דו מימדי של מצביעים מה לא ברור פה =\
בשביל להסביר לך את זה אני צריך לדעת אם אתה יודע מה זה מצביע, אתה יודע?
__________________ ~ Nobody Is Perfect, I'm Nobody ~
פורומים
|
חזרה לתחילת העמוד |
|
|
snaidis משתמש מתחיל
הצטרף / הצטרפה: 24 October 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 25
|
נשלח בתאריך: 27 October 2005 בשעה 21:56 | | IP רשוּם
|
|
|
|
כן, אני יודע.
|
חזרה לתחילת העמוד |
|
|
Fate פורומיסט על
הצטרף / הצטרפה: 25 October 2005
משתמש: מנותק/ת הודעות: 571
|
נשלח בתאריך: 27 October 2005 בשעה 22:40 | | IP רשוּם
|
|
|
|
בתכלס, מערך דו מימדי הוא מערך של מצביעים....
כל תא במערך הו מצביע למערך אחר...
ז"א המערך הראשוני הוא מערך של מבציעים...
וכל מצביע הוא מירך של מספרים למשל...
|
חזרה לתחילת העמוד |
|
|
ניר מנהל האתר
הצטרף / הצטרפה: 12 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 3296
|
נשלח בתאריך: 28 October 2005 בשעה 15:32 | | IP רשוּם
|
|
|
|
לא בהכרח. יש שני סוגים של מערכים דו ממדיים- כאלה שהם בבלוק אחד בזכרון,
שאם אתה גולש תא אחד קדימה משורה אתה מגיע לשורה הבאה, ויש כאלה שכל שורה
במקום אחר בזכרון.
בשפת C, כאשר אתה כותב ככה, אתה יוצר מערך שהוא רציף בזכרון:
לעומת זאת, אם תשתמש ב-int **arr ותקצה זיכרון - כל שורה יכולה להתמקם במקום אחר.
__________________ מספר האייסיקיו שלי ו/או כתובת ה-MSN שלי אינם מהווים מוקד תמיכה
|
חזרה לתחילת העמוד |
|
|
Nameless אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 28 October 2005 בשעה 21:03 | | IP רשוּם
|
|
|
|
ובמציאות אם אני לא טועה לא משנה אם תכתוב ככה או ככה זה לאו דווקא יהיה רציף
ומצביע זה ערך בזיכרון שמצביע לתא זיכרון מסוים
כשלמשל מקצים זיכרון בצורה דינמית הפעולה מחזירה מצביע לאיפה שהזיכרון שביקשת מתחיל
זה לאו דווקא יהיה רציף ואולי בדרך יהיה עוד כמה מצביעים שלא צריכים
לעניין אותך שאם זה לא רציף מצביעים לחלק הבא של הזיכרון שהקצית דינמית
בסוף מגיעים לערך שאומר שזה סוף הזיכרון שהקצית
|
חזרה לתחילת העמוד |
|
|
ניר מנהל האתר
הצטרף / הצטרפה: 12 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 3296
|
נשלח בתאריך: 28 October 2005 בשעה 22:10 | | IP רשוּם
|
|
|
|
אם תכתוב כמו שאני הצעתי לגבי מערך רציף, והקומפיילר שלך עומד בסטנדרט של C, אז הזכרון יוקצה בצורה רציפה.
__________________ מספר האייסיקיו שלי ו/או כתובת ה-MSN שלי אינם מהווים מוקד תמיכה
|
חזרה לתחילת העמוד |
|
|
snaidis משתמש מתחיל
הצטרף / הצטרפה: 24 October 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 25
|
נשלח בתאריך: 29 October 2005 בשעה 17:19 | | IP רשוּם
|
|
|
|
אפשר אולי דוגמא למצב שאני חייב להשתמש ב פויינטר לפויינטר?
|
חזרה לתחילת העמוד |
|
|
ניר מנהל האתר
הצטרף / הצטרפה: 12 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 3296
|
נשלח בתאריך: 29 October 2005 בשעה 17:37 | | IP רשוּם
|
|
|
|
מקרה בו אתה רוצה לכתוב פונקציה המקבלת מצביע ומשנה את המקום עליו הוא
מצביע (ושהשינוי ישאר גם כשאתה יוצא מהפונקציה). בשפת C מקובל להעביר
מצביע למצביע כשיש לך פונקציה שמקצה זיכרון, וגורמת למצביע שהועבר להצביע
אל הזכרון שהוקצה.
__________________ מספר האייסיקיו שלי ו/או כתובת ה-MSN שלי אינם מהווים מוקד תמיכה
|
חזרה לתחילת העמוד |
|
|