מערכים הם אחת הצורות הנפוצות ביותר לאחסון נתונים במהלך פעולת התוכנית. הם מאפשרים לך לארגן אלמנטים מאותו סוג ברצף מסודר ולקבל גישה מהירה אליהם באמצעות אינדקס. לעתים קרובות, כאשר מפתחים יישומים בשפות תכנות עוצמתיות וגמישות המאפשרות גישה ישירה לזיכרון, כגון C ++, עליכם לקבוע את גודל המערך.
נחוץ
מהדר C ++
הוראות
שלב 1
קבע את גודל המערך בזמן הקומפילציה על ידי חישובו באמצעות האופרטור sizeof. אופרטור זה מחזיר את כמות הזיכרון (בבייטים) שתופסת על ידי הטיעון שהועבר אליו. הטיעון יכול להיות משתנה או מזהה סוג. גודל האופרטור מחזיר את כמות הזיכרון הסופית שתופס האובייקט בשלב ביצוע התוכנית (תוך התחשבות, למשל בהגדרות ליישור שדות המבנה), אך חישובו מתבצע בשלב ההידור.
שלב 2
כדי לקבוע את גודל המערך באמצעות האופרטור sizeof, חלק את כל גודלו בגודל של אלמנט אחד. לדוגמה, אם יש לך את ההגדרה הבאה של מערך: int aTemp = {10, 20, 0xFFFF, -1, 16}, ניתן לחשב את גודלו כ: int nSize = sizeof (aTemp) / sizeof (aTemp [0]);
שלב 3
לשימוש נוח יותר בשיטה זו, הגיוני להגדיר מאקרו: #define countof (a) (sizeof (a) / sizeof (a [0])) שימו לב כי מאחר שערך האופרטור sizeof מחושב בקומפילציה בזמן, בנקודה בה מתבצע החישוב, מידע על נפח המערך ורכיביו חייב להיות זמין במפורש. במילים אחרות, אי אפשר לקבוע את הפרמטרים של מערך בגודל לא ידוע על ידי הצהרתו החיצונית.
שלב 4
קבע את גודל המערך במהלך ביצוע התוכנית, תוך שימוש בסימן הידוע לסיומו. אחת הגישות המאפשרות אחסון והעברת נתונים בצורה של מערכים באורך בלתי מוגדר היא הקצאת ערך מיוחד לסימן המציין השלמת רצף נתונים. לדוגמא, מחרוזות בסגנון C בודד שהן מערכי תווים חייבות להסתיים בערך 0, מערכי מחרוזת C ארוזים באורך משתנה הם אפסיים, ומערכי המצביע חייבים להיות מופסקים.
שלב 5
כדי לקבוע את גודל המערך המיוצג בדרך זו, סרוק אותו אלמנט אחר אלמנט עד שתמצא את האלמנט המסיים. הגדל את המונה שאותחל לאפס במהלך הסריקה. לחלופין, הגדל את ערך המצביע לאלמנט מערך, ולאחר הסריקה חשב את ההבדל בין המצביעים לאלמנטים הנוכחיים והראשונים.
שלב 6
קבל את הגודל של מערך דינמי המיוצג על ידי אובייקט מסגרת או ספרייה על ידי קריאה לשיטה שלו. לכל מחלקות שמקיפות את הפונקציונליות של מערכים כאלה יש שיטות לקבל את מספר האלמנטים הנוכחי. לדוגמא, למחלקת תבנית הווקטור std:: של הספרייה הסטנדרטית C ++ יש שיטת גודל, למחלקת QVector של מסגרת Qt יש שיטת ספירה ולמחלקה CArray האנלוגית של MFC יש שיטת GetCount.