سلام.
این کد ساده رو وقتی می نویسم تو خروجی a رو یه عدد عجیب قریب میده،هم با ویژوال c++ امتحان کردم هم با codeblocks.آخه چرا؟
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سلام.
این کد ساده رو وقتی می نویسم تو خروجی a رو یه عدد عجیب قریب میده،هم با ویژوال c++ امتحان کردم هم با codeblocks.آخه چرا؟
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
وقتی متغیری رو تعریف می کنیم متغیرها به ترتیب از پایین به بالا و از راست به چپ در حافظه قرار میگیرند.
طبق تعریف شما هر خونه از حافظه رو اگر یک بایت فرض کنیم ابتدا 2 بایت به Str میرسه که خونه اول و دومو اشغال میکنه و 2 بایت هم به a که خونه سوم و چهارم رو اشغال میکنه.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
تا الان که مشکلی نیست
حالا شما فرض کن رشته ی Alireza رو وارد کردی این رشته که وارد کردی از محدوده خودش خارج میشه و چون a بعد از str قرار داره L در خونه سوم و R در خونه چهارم قرار می گیره و اون رقم عجینی که میبینی همین دو حرف هستند که به integer تبدیل شدن.
شما str رو درست تعریف کن تا خونه های حافظه برای رشته ات رزرو بشن .
یا بهترین کار استفاده از اشاره گره تا به همون مقداری که وارد میشه فضا اختصاص بده!
اولا قرض از این پستم بیشتر تشکره چون واقعا این مسئله ذهنم رو بدجوری درگیر کرده بود و با کمک شما لااقل فهمیدم مشکل کجا بوده.بعدشم،در مورد اون تیکه آخری که گفتید از اشاره گر استفاده کنم،یه منبعی چیزی معرفی کنید یا اگه زحمتی نیست یه توضیح مختصری میدید.تا حدی درباره اشاره گرها می دونم ولی در مورد کارکردش تو این زمینه نه...
بازم ممنون![]()
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)