לדלג לתוכן

3.1 - פריסת זיכרון ותקפות ערכים - תרגול

תרגול פענוח בלי להסתמך על פריסת מבנה

כתבו encode ו־decode לפורמט בן חמישה בייטים: kind ולאחריו length מסוג u32 בסדר little endian. המפענח מקבל &[u8] ומחזיר None כאשר האורך אינו בדיוק חמש או כאשר kind אינו אחד מן הערכים 1 ו־2.

בדקו גם פרוסה שמתחילה באינדקס אחד של מערך גדול יותר. הסבירו מדוע אין צורך להוכיח שהכתובת שלה מיושרת ל־u32. השוו את גודל הפורמט לגודל Header בעל repr(C), ואל תניחו ששניהם שווים.