× מי אנחנו? התוכנית הראשונה משתנים קלט ופלט אופרטורים חשבוניים משפטי בקרה לולאות לולאות דו ממדיות casting sizeof typedef פונקציות רקורסיות מצביעים מצביע כפול מערכים מערכים דינאמיים מערכים דו ממדים מחרוזות חיפוש בינארי מיון בועות מיון בחירה מיון הכנסה מיון מהיר מיון מיזוג

Let's learn C

sizeof

מה sizeof עושה ?

מחזיר לנו את הגודל של משתנה או עצם מסויים בבתים.

צורת השימוש בפקודה:

sizeof(name);
name – מציין את העצם או משתנה שעליו אנחנו רוצים לדעת את הגודל.
הפקודה לוקחת את שם המשתנה name מבינה מה סוג הנתונים שלו ולפי זה מחזירה כמות בתים.
למשל, אם name הוא char אז היא תחזיר בית יחיד.
* ניתן למצוא גודל של מערך על ידי sizeof אך ורק באותה הפונקציה שבו המערך מוגדר.

דוגמה 1:

הפקודה תדפיס את הערך 4 בגלל שהמשתנה שלנו הוא מסוג int ומשתנה מסוג זה תופס 4 בתים.

CODE 1:
#include <stdio.h>
void main()
{
  int number;
  printf("%d\n",sizeof(number));
}

דוגמה 2:

בגלל שבדוגמה זו יש מערך הפקודה תחזיר לנו את כל כמות הבתים שיש בתוכו (כלומר 8 בתים בכל אחד מתאיו כפול 5 תאים).
זאת אומרת שנקבל פה 40, אך לנו זה לא מאוד עוזר כי בתור מתכנתים אנו רוצים לדעת כמה תאים יש ולא כמה בתים.

CODE 2:
#include <stdio.h>
void main()
{
  double arr[5];
  printf("the size in bytes is: %d\n",sizeof(arr));
}

תיקון לדוגמה 2:

כדי לתקן זאת, כל שעלינו לעשות הוא לחלק את מה שקיבלנו חזרה מ sizeof בסוג הנתונים שלנו.

CODE 2 - FIXED:
#include <stdio.h>
void main()
{
  double arr[5];
  printf("the size in bytes is: %d\n",sizeof(arr)/sizeof(arr[0]));
}