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

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




نمايش نتايج 1 به 9 از 9

نام تاپيک: مشكل با pointer

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

    14 مشكل با pointer

    سلام خدمت دوستان.
    وقتي من از اشاره گر ها استفاده ميكنم حس ميكنم يه جورايي كامپايلر كم مياره ()
    انگار پر از اشكال و باگ هستش...(البته نشنيده بگيريد)
    _____

    كد زير رو ببينيد
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    موقعي كه ميخوام يه مقدار رو به طور مستقيم تويه اشاره گري قرار بدم به اشكال ميخوره.
    وقتي كامپايل ميكنم خطا نداره ولي وقتي به :

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    ميرسه , بهم ميخوره. دليلش رو تغريبا ميدونم ولي روش حلش رو نميدونم.
    براي يك بعدي (
    char *name)از
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    استفاده ميكنم و مشكل حل ميشه ولي براي دو بعدي :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    چي كار كنم؟؟؟
    ______
    (رويه چندتا كامپايلر امتحان كردم اكثرا به اشكال خوردن ولي يكيشون بدون مشكل اجرا كرد. چرا ؟)
    Last edited by p d; 21-05-2010 at 11:08.

  2. #2
    داره خودمونی میشه femme's Avatar
    تاريخ عضويت
    May 2010
    پست ها
    42

    پيش فرض

    سلام
    مشکل شما اینه که از ۲ تا ستاره استفاده کردید .هرجا ۲ تا ستاره گذاشتید یعنی یک اشاره گر تعریف کردید که به اشارگری اشاره میکنه که خود اون داره به یک آدرس حافظه اشاره میکنه

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

    پيش فرض


    يعني چي ؟

    مشکل شما اینه که از ۲ تا ستاره استفاده کردید .هرجا ۲ تا ستاره گذاشتید یعنی یک اشاره گر تعریف کردید که به اشارگری اشاره میکنه که خود اون داره به یک آدرس حافظه اشاره میکنه
    خوب اين ميشه همون چيزي كه من ميخوام ديگه ...
    اين كه شما گفتي ميشه شبيه يه ارايه دو بعدي يعني همون چيزي كه من ميخوام...
    اساتيد نظري ندارن ؟

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

    پيش فرض

    سلام pd جان، کم پیدایین

    مشکل برنامتون اینه که برای names با new حافظه نگرفتین، و names که به جایی اشاره نمیکنه رو به اون توابع فرستادین
    اونجایی که برای numbers حافظه گرفتین برای names هم باید گرفت

  5. #5
    داره خودمونی میشه femme's Avatar
    تاريخ عضويت
    May 2010
    پست ها
    42

    پيش فرض

    names بايد به يك آرايه اشاره كنه تا بتونيد به عنوان يك آرايه از اون استفاده كنيد

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

    پيش فرض

    names بايد به يك آرايه اشاره كنه تا بتونيد به عنوان يك آرايه از اون استفاده كنيد

    ممنون ولي اين چيزي نيست كه من ميخوام ...
    ________

    به به ....
    سلام استاد, خوبي ؟
    شما هم كمتر فعاليت ميكني...
    ديدم فروم بي حال شده گفتم دوباره بيايم ... به پا كنيم
    _________
    مشکل برنامتون اینه که برای names با new حافظه نگرفتین، و names که به جایی اشاره نمیکنه رو به اون توابع فرستادین
    اونجایی که برای numbers حافظه گرفتین برای names هم باید گرفت
    اره ولي اين اشاره گر به اشاره گر هست ولي numbers يه اشاره گره ...
    خلاصه كه
    چه جوري حافظه بگيرم ؟ مثل همون numbers يا فرق داره ؟؟
    Last edited by p d; 22-05-2010 at 18:49.

  7. #7
    داره خودمونی میشه femme's Avatar
    تاريخ عضويت
    May 2010
    پست ها
    42

    پيش فرض

    سلام اين مثال براي من مفيد بود اميدوارم به شما هم كمك كنه

    int **array;
    array = new int*;
    *array = new int;
    **array = 2;
    *(*array) = 3;
    cout << **array;
    به یک متغیر ساده انجام شده است.
    pointer to pointer همون طور که می بینید
    خروجی اون 3 خواهد بود.
    یک آرایه ی دوبعدی درست کنید.
    PtoP اما شما می تونید با استفاده از

    int
    **array2;
    array2 =
    new int*[20];
    *array2 =
    new int[2];
    array2[0][10] = 5;
    cout << array2[0][10];

    براتون درست کردم.
    P2P در این مثال براتون یک آرایه ی دوبعدی ۲ در ۲۰ با استفاده از

    خروجی این مثال ۵ خواهد بود.

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

    پيش فرض

    به به ....
    سلام استاد, خوبي ؟
    شما هم كمتر فعاليت ميكني...
    ديدم فروم بي حال شده گفتم دوباره بيايم ... به پا كنيم
    اینجا تبدیل شده به مرکز حل تکالیف برای خیلیا، منم برای همین اینجا زیاد نمیام ...

    اره ولي اين اشاره گر به اشاره گر هست ولي numbers يه اشاره گره ...
    خلاصه كه
    چه جوري حافظه بگيرم ؟ مثل همون numbers يا فرق داره ؟؟
    خوب names هم به هر حال یه اشاره گر هست اشارگری که به اشاره گر دیگه اشاره میکنه باید حافظه بهش داده بشه وگرنه کامپایلر حافظه ای براش رزو نمیکنه
    مثالی که جناب femme دادن رو یه نگاهی بکنین این مساله رو نشون میده

    در کد شما باید این دستور اضافه بشه
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

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

    پيش فرض

    اینجا تبدیل شده به مرکز حل تکالیف برای خیلیا، منم برای همین اینجا زیاد نمیام ...
    ديگه اين رو نميشه كاريش كرد ...
    دوستان ممنون از راهنماييهاتون...


Thread Information

Users Browsing this Thread

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

User Tag List

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

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