
16-07-2008, 18:20
|
|
מנהל
|
|
חבר מתאריך: 09.10.04
הודעות: 15,910
|
|
אני מקווה שדוגמא תסביר את זה טוב יותר, בדוגמה arr_ptr מחזיק מצביע למערך דו מימדי של Int
בהתחלה הדפסתי את הערכים בשני המערכים, אח"כ הכנסתי את הכתובת של המערך למצביע ואז הדפסתי את המערך שהמצביע מצביע עליו.
אתה יכול להחליף את המערך אליו הוא מצביע ולקבל הדפסה של המערך השני
קוד PHP:
int ***arr_ptr; int **arr; int **tmp_arr; const int n_items = 10; int i= 0 ,j = 0;
arr = calloc(n_items, sizeof(int *)); tmp_arr = calloc(n_items, sizeof(int *)); for (i = 0; i < n_items; i++) { arr[i] = calloc(n_items, sizeof(int)); tmp_arr[i] = calloc(n_items, sizeof(int)); }
for (i = 0; i < n_items; i++) { for( j = 0; j < n_items; j++) { arr[i][j] = i + j + 2; tmp_arr[i][j] = -1 * (i + j + 2); } }
for (i = 0; i < n_items; i++) { for( j = 0; j < n_items; j++) { printf("%4d ", arr[i][j]); } printf("\n"); }
printf("\n************************************\n"); for (i = 0; i < n_items; i++) { for( j = 0; j < n_items; j++) { printf("%4d ", tmp_arr[i][j]); } printf("\n"); }
arr_ptr = &tmp_arr;
for (i = 0; i < n_items; i++) { for( j = 0; j < n_items; j++) { printf("%4d ", (*arr_ptr)[i][j]); } printf("\n"); }
_____________________________________
הראל
|