2024 نویسنده: Elizabeth Oswald | [email protected]. آخرین اصلاح شده: 2024-01-13 00:06
بسیاری از زبان های برنامه نویسی، مانند C، هرگز برای افزایش سرعت، مرزها را به صورت خودکار بررسی نمی کنند. با این حال، این امر باعث می شود که بسیاری از خطاهای یک به یک و سرریز بافر از بین نرود. بسیاری از برنامه نویسان بر این باورند که این زبان ها بیش از حد برای اجرای سریع قربانی می شوند.
آیا بررسی باند در آرایه انجام می شود؟
چکیده. بررسی محدود آرایه به تعیین برای تعیین اینکه آیا همه ارجاعات آرایه در یک برنامه در محدوده های اعلام شده خود هستند یا نه، اشاره دارد. این بررسی برای راستیآزمایی و اعتبارسنجی نرمافزار حیاتی است زیرا اشتراک آرایههایی فراتر از اندازههای اعلامشدهشان ممکن است نتایج غیرمنتظره، حفرههای امنیتی یا خرابی ایجاد کند.
چرا C محدودیتهایی را بررسی نمیکند؟
این به این دلیل است که C++ کرانهای را بررسی نمی کند. … اصل طراحی C++ این بود که نباید از کد C معادل کندتر باشد و C کران آرایه را بررسی نمی کند. بنابراین اگر بخواهید به این حافظه خارج از محدوده دسترسی داشته باشید، رفتار برنامه شما تعریف نشده است زیرا در استاندارد C++ نوشته شده است.
آیا شاخص های آرایه C در زمان اجرا بررسی می شوند؟
مشکل واقعی این است که پیادهسازیهای C و C++ معمولاً کرانهای را بررسی نمیکنند (نه در زمان کامپایل و نه در زمان اجرا). آنها کاملاً مجاز به انجام این کار هستند. زبان را برای آن سرزنش نکنید.
اگر یک آرایه در C از محدوده خارج شود چه اتفاقی می افتد؟
ArrayIndexOutOfBoundsException ممکن است در صورت دسترسی خارج از محدوده به آرایه رخ دهد. ولیچنین عملکردی در C وجود ندارد و اگر به یک آرایه خارج از محدوده دسترسی پیدا شود، ممکن است رفتار تعریف نشده رخ دهد. برنامه ای که این را در C نشان می دهد به صورت زیر ارائه می شود.