مشاهده نسخه کامل
: یه سوال سهل
چی میشه برای Cin زیر ارور نگرفت؟ :8:
char *name[5] ;s
cin >> name[i]; s
i هم که شمارنده حلقمونه. ارور Fatal و ... میده. چرا؟
اول باید i رو تعریف کنید.بعد توی یک حلقه ی for بذارید.
اگر متن ارور و پی کد رو بذارید بهتر میشه کمک کرد.
دوست عزیز دیگه واسه اینکه تاپیک طولانی نشه گفتم i حلقمونه. در ضمن کاراکترها از input خونده میشن و نه Output
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ارور Access violation میده تو Borland C++ 5.02
و توی 4.5 ارور Exception
sin2x=2sinxcosx
09-02-2011, 22:31
خب اینجا چرا دیگه * گذاشتین ؟
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اینو حذف کنین حله .
این آرایه ای از اشاره گر هاست. این طوریه حافظه فقط به اندازه طول رشته از سیستم عامل گرفته میشه و نه به اندازه یه آرایه 2 بعدی که ممکنه تعدادی از خونه های حافظه خالی بمونن. حتما میدونید!!؟
میشه اینطوریه مقدار اولیه داد بهشون ولی میخوام با Cin ردیفش کرد.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
یا یک آرایه ی 2 بعدی درست کنی مقادیرش رو به آرایه ای از اشاره گرها اختصاص بدی.
مثلا توی یه حلقه مقادیر آرایه 2 بعدی رو که گرفتی بگی list[i]= myArray[i] s که اینطوری بدجوری حافظه به فنا میره.
sin2x=2sinxcosx
10-02-2011, 12:33
اٌه مای گاد ...
فک کردم یه استرینگ می خواین بگیرین .
آخه اینجوری نمیشه که . وقتی تو این حالت از یه اشاره گر استفاده می کنین یه آرایه بدون نام تو حافظه read-only ایجاد میشه و چنین آرایه ای رو نمیشه تغییر داد که سی این کردن به معنی همون تغییر دادنه .
من فکر کردم قراره از طریق کیبورد دیتا وارد بشه و بهمین دلیل از cinاستفاده کردید.خب اینطوری که مشکل داره عزیز.معلومه ارور میگیره.
ولی اگه Read-Only بود نمیشد اینطوری بهش مقدار داد. این Code منه.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اینجا چه خبره؟
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
مشکل اینجاست.پسر خوب تو داری اینیشیالیزیشن می کنی؟چی کار می کنی؟این آرایه باید از یجایی بخونه.شما دستور cin رو دادی.اما...
چی چه خبره مهندس؟
منظورم از چه خبره همون داخل Code.
اینیشالایز تا اونجایی که من میدونم یعنی هر زمان مثلا گفتی int a سریع بعدش مساوی بذاری و مقدار بهش بدی.
اما کاری که من کردم مقداردهی پس از تعریفه؛ که با Cin مشکل داره؛ ولی با کپی از آرایه مشکلی نداره. ابهام من اینجاست.
---------- Post added at 11:09 PM ---------- Previous post was at 11:07 PM ----------
در ضمن من دارم با Cin توی آرایه می نویسم. مشکلش کجاست؟
تابحال جایی ندیدم که با cinمقداردهی کنن احتمالا امکانش هست.
این دستور مقادیر رو می خونه.درست؟این مقادیر باید از کجا خونده بشن؟درست.شما میگید می خواید تو آرایه بنویسید.اما چی رو می خواید بنویسید و این مقادیر باید از کجا خونده بشن؟و اینکه چطور یک آرایه یک بعدی می تونه تو انتساب با یک آرایه دوبعدی شرکت کنه؟من کد شما رو توی توربو ران کردم.اروری نداد.اما خب.نتیچه ای هم نداشت.
Desperate
11-02-2011, 17:09
میخوای ارایه دوبعدی رو به صورت یه بعدی مقدار دهی کنی . مگه میشه.
شما برنامه رو اجرا کنید -> ورودی به برنامه بدید-> میبینید که مقادیر آرایه 2 بعدی رشته ای در داخل لیست قرار میگیره و چاپشون هم میکنه.
در ضمن همونطور که میدونید آرایه 2 بعدی رشته ای، محل 0اش به رشته اول اشاره میکنه و با دو اندیس مثل myString[0][2] s به کاراکتر اشاره میکنه پس مشکلی نیست که آرایه دو بعدی رو با یک اندیس به چیزی نسبت داد. (البته از نوع رشته ای)
sin2x=2sinxcosx
11-02-2011, 19:59
ولی اگه Read-Only بود نمیشد اینطوری بهش مقدار داد. این Code منه.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیداینجا چه خبره؟
چرا تو انتساب هم ارور میده .
شما اینجا دارین کل یه پوینتر رو به یکی دیگه انتساب میدین که اینجا آدرس ها کپی میشه و برا همین مقادیر هم یکی میشن . در واقع مقادیر داخل اینا اینجا کپی نمی شن . آدرسها کپی میشن .
ولی تو cin که یک جا نمی گیره و کاراکتر به کاراکتر میزنه ارور داده میشه . چون می خواد محتویاتو عوض کنه .
شما هم اگه بخواین کاراکتر به کاراکتر پوینتر رو کپی کنین باز Access Violation می گیرین .
هیچ خبر خاصی نیس .
sin2x=2sinxcosx تکنیک زدی در حد فراقاره!
پس نتیجه این شد که *list مثل یه اشاره گر معمولی آدرس ها رو نگه میداره و به خونه های myString اشاره میکنه.
خدا رو شکر که بالاخره مشکلتون رفع شد.اما برنامتون رو ران کردم و ورودی هم نخواست.
sin2x=2sinxcosx
12-02-2011, 09:50
sin2x=2sinxcosx تکنیک زدی در حد فراقاره!
پس نتیجه این شد که *list مثل یه اشاره گر معمولی آدرس ها رو نگه میداره و به خونه های myString اشاره میکنه.
بله در واقع اینجا list پنج تا پوینتر می باشد که 5 آدرس رو نگه می داره .
MosaferJade
05-03-2011, 17:00
واقعا چه بحث نفس گیری
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.