سلام
این پست در خصوص تجربیاتیه که در برنامه نویسی داشتیم. مخصوصاً اون تجربیاتی که به خاطرش ساعتها و روزها درگیر بودیم تا بتونیم مشکل برنامه رو حل کنیم (که خیلی وقتها هم این مشکل راه حل خیلی سادهای داشته اما رسیدن به همون راه حل کار راحتی نبوده). اینطوری بقیه هم میتونند از این تجربهها استفاده کنند و بدون صرف اون همه وقت برنامشون رو پیش ببرند.
به عنوان اولین مورد تجربهی خودم رو مینویسم که همین 2 روز پیش بهش رسیدم و یه جورایی خیلی اشتباه ساده لوحانهای بود.
توی یه برنامه بافری داشتم که از نوع 32 بیتی بود. من معمولاً برای ریست آرایه از memset استفاده میکنم. معمولاً هم توی برنامهها آرایهی از نوع کاراکتری نیاز میشه که خب هیچ وقت مشکلی نداشتم باهاش. اما توی این برنامه میدیدم که برنامه خیلی رفتار رندومی داره و هر دفعه یه جوری کار میکنه. با دیباگ رسیدم به همین آرایه که مقدار درستی داخلش قرار نمیگرفت در صورتی که تا قبل از اون همه چیز درست بود. بالاخره بعد از صرف زمان زیادی فهمیدم که پارامتر سوم تابع memset که سایز آرایهی ورودیه، در واقع بر حسب بایته و باید از sizeof براش استفاده کنم در حالی که من داشتم طول آرایه رو که به صورت define تعریف کرده بودم پاس میدادم بهش و خب چون آرایهی من 32 بیتی بود در واقع من داشتم فقط یک چهارم اون آرایه رو با memset ریست میکردم.