یک برنامهٔ ساده به زبان C++ بنویسید که داده‌های باینری دریافتی از یک سنسور را در یک بافر ثابت قرار دهد و با استفاده از نوع size_t (از هدر ) طول ورودی را بررسی کرده و در صورت سرریز بافر، یک کد خطای مناسب (enum) بازگرداند.

2.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 02:00

0.0

برای حل: هدر را وارد کنید و از size_t برای متغیرهای طول و اندازهٔ بافر استفاده کنید. یک بافر ثابت با constexpr size_t تعریف کنید، طول ورودی را با size_t نگه دارید و قبل از کپی کردن با memcpy یا حلقهٔ ساده بررسی کنید که input_length

توسط پژوهشگر در 220 روز قبل ساعت 02:00
دسته بندی ها: C Plus Plus C Plus Plus for beginner
arman در 220 روز قبل ساعت 11:17

برای ایمن‌سازی کپی داده‌های باینری از سنسور، از size_t برای طول ورودی و اندازه بافر استفاده کنید و قبل از کپی مقدار input_length را با اندازه بافر مقایسه کنید. با constexpr size_t بافر ثابت تعریف کنید تا فضای بافر در زمان کامپایل مشخص بماند. در صورت سرریز، بازگرداندن یک کُد خطای مناسب از یک enum به کاربر اجازه می‌دهد تا خطا را تشخیص دهد. استفاده از memcpy یا حلقه با بررسی دقیق اندازه خطر دسترسی خارج از محدوده را کاهش می‌دهد و پیاده‌سازی را قابل‌اعتمادتر می‌کند.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری