ورود

View Full Version : سوال: خطای زمان اجرا



pckho0r
سه شنبه 12 آبان 1388, 22:53 عصر
خوب حقیقتآ بخش مناسبی برای سوالم پیدا نکردم ولی خوب مطمعنآ برنامه نویسان visual C++‎ بهتر از هر کسی می توانند توضیحی برای اینگونه خطاها داشته باشند !

error زیر رو مشاهده کنید :

http://www.imagechicken.com/uploads/1257281791054685000.png

این پیام همواره خطایی اشنا برای اینجانب بوده و به کرات باهاش برخورد داشتم ، خصوصآ در اجرای برنامه های پرتابل یا برنامه های کوچک بدون نیاز به نصب.

حال سوال اینجاست که دلیل بروز اینگونه خطاها در کجاست ؟(البته از برنامه نویسی سیستم تا حدودی سرم میشه پس خیلی راحت میتونید فنی توضیح بدید)

چه چیزی باعث میشه تا در اجرای یک فایل چنین خطایی بروز کنه ؟

ادرس موجود در خطا به کجا و چه چیزی اشاره میکنه ؟

راه حل این مشکل در کجاست ؟

ممنون و موفق باشید

pckho0r
چهارشنبه 13 آبان 1388, 15:12 عصر
در لینک زیر یه توضیحاتی در این باره داده شده و همچنین نحوه رفع خطا ولی خوب به زبان انگلیسی هست و من درست متوجه نشدم که منظورش چیه !

http://www.tech-pro.net/howto_015.html

hosseinkhosravi
پنج شنبه 28 آبان 1388, 10:57 صبح
دلایل متعددی باعث بروز چنین خطاهایی میشود که غالب آنها منشاء حافظهای دارند:
مثلا شما یک اشارهگر (http://www.p30codenevis.ir/cpp-programming/92-pointers-in-cpp.html) تعریف کردهای و قبل از این که حافظهای به آن تخصیص بدهی از آن استفاده میکنی. یا آرایهای (http://www.p30codenevis.ir/cpp-programming/84-arrays-in-c-plus-plus.html) به طول 10 درست میکنی و قصد استفاده از المان 15 آن آرایه را داری. حالت دیگر زمانی است که اشارهگری به یک تابع ساختهای و باز قبل از اینکه آدرس یک تابع را به آن تخصیص دهی از آن استفاده کنی. مورد دیگری که میتواند چنین مشکلاتی را سبب شود زمانی است که تبدیل نوع (type cast) اشتباهی را به زور انجام دهی، مثلا یک کنترل که از نوع دکمه است را به یک کنترل از نوع textbox تبدیل کنی (مثلا به کمک reinterpret_cast) و از توابع textbox استفاده کنی.
در مورد آدرسی که دیده میشود، آدرس خطی از برنامه است که این خطا در آن ایجاد شده است و چندان دردی دوا نمیکند. این آدرس هر بار که برنامه را اجرا کنی ممکن است متفاوت شود چرا که سیستم عامل هر بار فضای خاصی از Ram را به برنامه تخصیص میدهد.