تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 15

نام تاپيک: آرایه+رشته+c++

  1. #1
    داره خودمونی میشه jaho's Avatar
    تاريخ عضويت
    Sep 2007
    محل سكونت
    InFuTuRe
    پست ها
    141

    پيش فرض آرایه+رشته+c++

    دوستان خوبم سلام
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    توی خط اول برنامه به آرایه ی string1 اندازه ی 5 رو دادم اما وقتی بیشتر از 5 کاراکتر وارد می کنم باز هم اونا رو نمایش میده!
    پس فلسفه ی وجودی این اندازه چیه؟

  2. #2
    پروفشنال hoax3r's Avatar
    تاريخ عضويت
    Oct 2007
    پست ها
    699

    پيش فرض

    فلسفش اینه که اون اندازه یعنی کشک برای همینه که خالق ++C توصیه میکنه از آرایه های C تا حد ممکن استفقاده نکنیین

  3. #3
    اگه نباشه جاش خالی می مونه p d's Avatar
    تاريخ عضويت
    Apr 2009
    محل سكونت
    قبرستون
    پست ها
    449

    پيش فرض

    فكر نكنم اين قدر هم كشك باشه!!!
    اين 5تا براي string1 در نظر گرفته ميشه. حالا اگر تصادفا(تويه حافظه) string2 بعد از string1 ذخيره شده باشه و اول به string2 مقدار داده باشيد و بعد بجاي وارد كردنه 5تا , 6تا براي string1 وارد كنيد , اونوقت ديگر تويه اولين خونه ي string2 مقدار ششم string1 است, در حالي كه بايد اولين مقدار string2 باشد.

  4. #4
    حـــــرفـه ای sin2x=2sinxcosx's Avatar
    تاريخ عضويت
    Dec 2007
    پست ها
    2,234

    پيش فرض

    بله به راحتی می تونه تو خونه های رزرو نشده هم عدد بذاره . چون دقیقا آدرسشو داره . چون آدرس خونه آخر آرایه رو که داره و نوع داده رو هم می دونه . پس می تونه تو اون خونه قرار بده . موقع خوندن هم آرایه هیچ وقت بررسی نمی کنه که اندیسش out of range هست یا نه . پس هر اندیسی بدین مقدارشو از حافظه پیدا می کنه میاره .

  5. #5
    داره خودمونی میشه jaho's Avatar
    تاريخ عضويت
    Sep 2007
    محل سكونت
    InFuTuRe
    پست ها
    141

    پيش فرض

    خب پس اگر اینطور که میگید باشه یعنی اصلا به اندازه ای که به آرایه میدیم توجهی نمی کنه خب این همون....کشک میشه دیگه نمیشه؟

  6. #6
    حـــــرفـه ای sin2x=2sinxcosx's Avatar
    تاريخ عضويت
    Dec 2007
    پست ها
    2,234

    پيش فرض

    خب پس اگر اینطور که میگید باشه یعنی اصلا به اندازه ای که به آرایه میدیم توجهی نمی کنه خب این همون....کشک میشه دیگه نمیشه؟
    نه . تقریبا کشکه . پست جناب pd رو یه بار دیگه بخونین :

    فكر نكنم اين قدر هم كشك باشه!!!
    اين 5تا براي string1 در نظر گرفته ميشه. حالا اگر تصادفا(تويه حافظه) string2 بعد از string1 ذخيره شده باشه و اول به string2 مقدار داده باشيد و بعد بجاي وارد كردنه 5تا , 6تا براي string1 وارد كنيد , اونوقت ديگر تويه اولين خونه ي string2 مقدار ششم string1 است, در حالي كه بايد اولين مقدار string2 باشد.

  7. #7
    داره خودمونی میشه jaho's Avatar
    تاريخ عضويت
    Sep 2007
    محل سكونت
    InFuTuRe
    پست ها
    141

    پيش فرض

    خب اگر تصادفاstring2 بعد از string1 ذخیره نشده باشه چی؟
    از 5 به بعد رو توی اولین متغیر همنوع بعد از خودش ذخیره می کنه؟
    به هر حال منظورتون اینه که مقدار اضافه توی یه متغیر دیگه ذخیره میشه پس چرا وقتی همین متغیر روcout می کنیم با تمام اجزایی که گرفته اونو نمایش میده مگر اونا توی یه متغیر دیگه ذخیره نشدن؟

  8. #8
    حـــــرفـه ای sin2x=2sinxcosx's Avatar
    تاريخ عضويت
    Dec 2007
    پست ها
    2,234

    پيش فرض

    خب اگر تصادفاstring2 بعد از string1 ذخیره نشده باشه چی؟
    اون موقع همون کشک می شه .

    به هر حال منظورتون اینه که مقدار اضافه توی یه متغیر دیگه ذخیره میشه پس چرا وقتی همین متغیر روcout می کنیم با تمام اجزایی که گرفته اونو نمایش میده مگر اونا توی یه متغیر دیگه ذخیره نشدن؟
    توی متغیر دیگه نه . توی یه آدرس از حافظه که اسم آرایه هم براش به منزله اسم متغیر هست .
    من هیچ وقت نگفتم توی یه متغیر دیگه .

  9. #9
    پروفشنال hoax3r's Avatar
    تاريخ عضويت
    Oct 2007
    پست ها
    699

    پيش فرض

    پس چرا وقتی همین متغیر روcout می کنیم با تمام اجزایی که گرفته اونو نمایش میده مگر اونا توی یه متغیر دیگه ذخیره نشدن؟
    کامپایلر موقع تعریف متغییر های محلی اول مقدار متغیرهایی که مقدار ثابت (رشته ای یا عدد) دارن رو در حافظه (آدرس متغییرها) میریزه بعد از این
    متغییر های مقدار دهی نشده رو قرار میده برای همین تو مثال شما به string1 هر مقداری بدی به string2 کاری ندراه
    ولی بعدش به دلایلی احتمال کرش برنامتون هست(اگه مقدار string1 زیاد باشه)
    Last edited by hoax3r; 27-11-2009 at 17:48.

  10. این کاربر از hoax3r بخاطر این مطلب مفید تشکر کرده است


  11. #10
    داره خودمونی میشه jaho's Avatar
    تاريخ عضويت
    Sep 2007
    محل سكونت
    InFuTuRe
    پست ها
    141

    پيش فرض

    توی متغیر دیگه نه . توی یه آدرس از حافظه که اسم آرایه هم براش به منزله اسم متغیر هست .
    من هیچ وقت نگفتم توی یه متغیر دیگه .
    یعنی چیییییییییییییییییییییییی ؟
    یه آدرس از حافظه که اسم آرایه هم به منزله ی اسم متغیر هست خب یه متغیره دیگه!نیست؟
    ؟

صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •