PDA

View Full Version : سوال در مورد مقدار حافظه اشکالی ورودی از صفحه کلید



xman_dj
شنبه 27 فروردین 1390, 00:29 صبح
با سلام و خسته نباشید خدمت دوستان
یک سوالی داشتم در زبان سی
من میخوام از کاربر یک ورودی داشته باشم ولی نمیدونم میزان حافظه اشکالی ورودی کاربر در برنامه چقدر خواهد بود چون ممکن است کاربر یک کاراکتر ساده تایپ کند و یا یک عدد بزرگ
خوب سوال من اینه که چون من نمیدونم کاربرچه چیزی وارد میکند مقدار ورودی رو تو چه متغییری باید بریزم چون مقدار حافظه اشکالی رو نمیدونم
----
و سوال دوم من اینه که چطور میشه فهمید مقدار ورودی چند بایت حافظه اشکال میکند و بسته به حافظه اشکالی میخوام پیغامی صادر کنم
--
پس شد 2 سوال
1-چگونگی گرفتن مقدار
2-تشخیص مقدار حافظه اشکالی
--
فکر کنم با ;(نوع داده)sizeof

باید کار کنیم البته دوستان بهتر میدونن

ممنون از دوستان منتظر جواب ها هستم

tdkhakpur
شنبه 27 فروردین 1390, 00:48 صبح
سوال من اینه که چون من نمیدونم کاربرچه چیزی وارد میکند مقدار ورودی رو تو چه متغییری باید بریزم چون مقدار حافظه اشکالی رو نمیدونم

در هر کد نویسی برای ورودی معمولا یک فضای بیشتر از حد معمول گرفته میشه تا فضای بیشتری برای داده های احتمالی که میتونن بزرگ باشه گرفته میبشه.

و سوال دوم من اینه که چطور میشه فهمید مقدار ورودی چند بایت حافظه اشکال میکند و بسته به حافظه اشکالی میخوام پیغامی صادر کنم

خب بریا این کار از strlen یا متدهای مشابه استفاده میشه ولی باز قضیه بر میگرده به سوال اولتان که باید این فضا از قبل رزرو شده باشه.
در کل برای این نوع فعالیتها باید از تخصیص پویای حافظه استفاده کنید و این هم بر میگرده به نوع برنامه یا تحلیل کاری برنامه که باید بررسی بشه.

xman_dj
شنبه 27 فروردین 1390, 01:03 صبح
دوست من بابت جواب ممنون
ولی من میخوام برنامه ای بنویسم که همین کار تشخیص حافظه مقدار ورودی رو انجام بده برای مثال من از یک متغییر int در نظر گرفتم ولی کاربر میاد یک مقدار بزرگ وارد میکنه...
حالا میخوام کدی بنویسم که مقدار حافظه اشکالی رو بهم بگه
لطفا یکم بیشتر توضیح بدین خیلی ممنون
این سوال 1 خیلی خیلی مهمتره برام نسبت به سوال دوم
---
یک فکری به نظرم میرسه اما نمیدونم میشه یا نه
شما هم مثل من تو کتابها دیدین که برای متغییر ها یک رنج خاصی اختصاص میدن برای مثال char در بازه 127 , -127 هست میشه از اینا استفاده کرد؟
ویا از این تابع sizeof که برای استفاده از این تابع باید مقدار یک جایی ذخیره شده باشه فکر کنم

xman_dj
سه شنبه 30 فروردین 1390, 14:59 عصر
کسی نیست به ما جواب بده؟

hi level hdd
سه شنبه 30 فروردین 1390, 17:35 عصر
با سلام
بهترین کار اینه که از رشته ها استفاده کنی. مثلا متغیری از نوع char با طول 100 یا 200 تعریف کن و یا مثلا به کاربرت توضیح بده که در چه محدوده ای میتونه
عدد یا حروف وارد کنه

xman_dj
سه شنبه 06 اردیبهشت 1390, 12:41 عصر
ممنون بابت جواب دوست من ولی مساله اینجاست که نمیخوام به کاربر محدودیت بدم