
23-02-2007, 12:30
|
|
|
|
חבר מתאריך: 15.08.06
הודעות: 1,561
|
|
הכי טוב ויעיל זה לשמור משתנה int של הגודל של המערך.
אבל אם מסיבה מסוימת אתה לא רוצה לשמור, אז אתה חייב להגדיר את המערך כסטטי:
קוד:
int A[5];
printf("%d\n", sizeof(A)/sizeof(int));
(הגודל של המערך יהיה 20 בתים שזה גודל של 5 אינטים, ולכן החילוק..)
שים לב שגם אם במערך אין ערכים עדיין והכל זבלי, זה יגיד לך שהמערך בגודל 5.
אם זה מערך דינאמי, אז אין אפשרות לגלות את גודל המערך ואתה תהיה חייב לשמור את הגודל של המערך.
קוד:
int ArrSize = 200;
int* A = (int*)malloc(sizeof(int) * ArrSize);
printf("%d\n",sizeof(A)/sizeof(int)) // will output 1 (liar!)
printf("%d\n",ArrSize) // 200
|