ورود

View Full Version : خارج از سایز آرایه مقدار داره!!!!!



mzamani
سه شنبه 04 آبان 1389, 18:03 عصر
سلام من یه آرایه با سایز مشخص تعریف می کنم اما در برنامه در خارج از سایز آرایه هم مقدار های نا معتبر وجود دارد.

int ary[3][2]={0};

تو برنامه ary[3][6] هم مقدار داره ولی نامعتبر، اصلا چرا برنامه خارج از سایز رو error نمی ده؟:گیج:

mehdi.mousavi
سه شنبه 04 آبان 1389, 18:16 عصر
سلام.
وقتی شما حافظه ای از سیستم میگیرید، Memory Manager برای سرعت بخشیدن به تخصیص حافظه، اون حافظه رو دست نخورده به شما برمیگردونه و ممکنه توی اون لحظه، اطلاعاتی در اون آدرس از حافظه وجود داشته باشه، یا نداشته باشه (منظورم اینه که صفر باشه خونه های حافظه).

این مساله نباید برای شما اهمیتی داشته باشه، چون قرار نیست شما به حافظه ای فراتر از اون چیزی که براتون تخصیص پیدا کرده دسترسی پیدا کنید. حافظه ای رو هم که قراره بهش دسترسی پیدا کنید با داده های دلخواه خودتون Populate می کنید.

اگر مایلید تا حافظه تخصیص یافته رو با صفر پر کنید، می تونید از ZeroMemory (http://msdn.microsoft.com/en-us/library/aa366920%28VS.85%29.aspx) (یا نسخه Compiler-Friendly اون، SecureZeroMemory (http://msdn.microsoft.com/en-us/library/aa366877%28VS.85%29.aspx)) استفاده کنید.

موفق باشید.