PDA

View Full Version : سوال: سورسي براي سرريزي بافر بدون خطا هست؟



googoolak
پنج شنبه 19 اردیبهشت 1387, 20:57 عصر
با سلام دوباره ببخشيد كه زياد سوال مي پرسم
مي خواستم ببينم سورسي براي سرريزي بافر بدون ايجاد ارور وجود داره؟
اگه داره لينك سورس رو در صورت امكان برام بفرستيد.
البته اين سورس رو براي يكي از برنامه هام مي خوام كه خيلي واجبه !!!:گریه:
منظورم اينه كه اگه اطلاعات بيشتر از سايز آرايه وارد شد اطلاعات باعث ارور نشوند و همچنين همه ي اطلاعات ذخيره شوند و خودم قبلا از روش cin.get..... استفاده كردم ولي اين جوري به دردم نمي خوره بايد كل اطلاعات بمونن حتي اگه بيش تر سايز آرايه باشن !!!
ممكنه؟

A_Salimi
پنج شنبه 19 اردیبهشت 1387, 22:05 عصر
نمیدونم منظورتون رو درست متوجه شدم یا نه ؟ اما شما مجبور نیستی همیشه برای آرایه ها طول مشخصی در نظر بگیری و میتونی داخل کروشه اصلا مقداری قرار ندین تا آرایه محدود به طول خاصی نشه !
ضمنا رشته ها رو با cin هم میتونید بخونید و اجباری در استفاده از cin.get نیست

ICEMAN
جمعه 20 اردیبهشت 1387, 10:58 صبح
از char pointer ها هم مي توني استفاده كني
يا اگه به هر دليلي نمي خواي كارهايي كه گفته شد و انجام بدي ميتوني با Exception Handleing خطا رو جمع و جورش كني

Nima_NF
جمعه 20 اردیبهشت 1387, 16:08 عصر
خوب هر کسی باید بداند می خواهد چه میزان اطلاعات از کاربر دریافت کند و بر اساس آن حافظه اختصاص دهد.
اگر از آرایه ها با طول ثابت استفاده می کند، باید حداکثر حافظه مورد نیاز احتمالی را در نظر بگیرید مثلا برای ماکسیمم هزار کارکتر (تخمینی) از آرایه ای با طول 1000 استفاده کنید که حدود 1kb حافظه نیاز دارد و یا اندازه بیشتر.

در مواردی که در حین اجرای برنامه مشخص می شود چه میزان حافظه مورد نیاز هست و یا حافظه بیشتری مورد نیاز است باید از حافظه های پویا استفاده کرد (از طریق new و delete در ++C) که پیاده سازی آن بستگی به برنامه شما دارد.