نمایش نتایج 1 تا 17 از 17

نام تاپیک: ست کردن طول آرایه در زمان اجرا

  1. #1

    ست کردن طول آرایه در زمان اجرا

    سلام
    چجوری میشه طوله یه آرایه رو در زمان اجرا ست کرد؟

  2. #2
    اگر لطف کنی بگی برای کدوم یک از C ,Cpp یا MFC می خوای ممنون میشم . :)

  3. #3
    سلام
    برای ++C می خوام.

  4. #4
    میتونی یه اشاره گر از جنسی که برای آرایه در نظر گرفتی تعریف کنی ، در موقع لازم اون رو New کنی ( همینجا سایزش رو مشخص میکنی ) و بعد از کاربرد ، Delete اش کنی . مثلا" :

    somewhere

    int *cMyArray;

    somewhere else

    cMyArray = new int[50]

    after usage

    delete [] cMyArray;


    یا مثلا" بصورت خلاصه :

    int* cMyArray = new int[30];


    :)
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

  5. #5
    سلام
    باتشکر

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

  6. #6
    معلومه . مقدار مورد نظرت رو از کاربر میگیری و به همون اندازه New میکنی :

    int iSize;
    cin>>iSize;
    int* cMyArray = new int[iSize];


    این کد رو نوشتم که فقط مفهوم مشخص بشه وگر نه اینطوری کد نوشتن چندان مرسوم و معقول نیست

    خوش باشی :)
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

  7. #7
    در صورتی که کار فوق رو انجام بدم اطلاعاته قبلی آرایه از بین نمی روند؟
    کدام اطلاعات قبلی ؟ اطلاعات قبلی ای وجود نداره ! تو خودت آرایه رو ایجاد کردی .
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

  8. #8
    سلام

    خیلی ممنون مشکلم حل شد ولی برای اطلاعات بیشتر یه سوال دیگه هم داشتم.
    نمیشه بدون استفاده از اشاره گر این کار ها رو کرد؟

  9. #9
    خیر . استفاده از اشاره گر ها باعث میشه برنامه ات با Heap کار کنه که میتونه اندازه های متغیر رو برای انواع قبول کنه اما بدون استفاده از اشاره گر تو فقط میتونی با Stack کار کنی که اندازه انواع روش فیکس هستن . :)
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

  10. #10
    سلام
    خیلی ممنون :flower:

  11. #11
    سلام
    میتونین برای اینجور کاربردها از vector استفاده کنید. اوونوقت حتی وسط کار هم میتونین اندازه آرایه رو زیاد کنید بدون اینکه اطلاعات قبلی دستکاری بشه.

    ;std::vector<YOURTYPE> m_MyVector


    این نوع داده ای مربوط به STL هستش.

  12. #12
    سلام
    از راهنماییتون ممنونم :flower:

  13. #13
    مهمان
    البته فکر کنم در C به Vector می گویند لینک لیست . درسته؟
    اگر اشتباه می کنم حتما تذکر بدین
    با تشکر

  14. #14
    وکتور Linked list نیست . برای ایجاد Linked list باید از تمپلیت list استفاده کنی . لازمه توضیح بدم اعضای خانوادهء STL هم با استفاده از اشاره گر وظایفشون رو انجام میدن .

    موفق باشید :)
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

  15. #15
    شما می تونید از تابع mallocنیز استفاده کنید

    ببخشید که جوابهای من خلاصه هستش چون تایپ فارسی من واقعا افتضاحه!!!!!!!!!! :cry:

    typeاین 10 minطول کشیذ

  16. #16
    مهمان
    خوب من یادمه که برای وکتور می تونستیم اطلاعات رو به صورت به قطار پشت سر هم در بیاریم
    در مورد لینک لیست هم همینطور بود.درسته؟
    با تشکر

  17. #17
    خیر . استفاده از اشاره گر ها باعث میشه برنامه ات با Heap کار کنه که میتونه اندازه های متغیر رو برای انواع قبول کنه اما بدون استفاده از اشاره گر تو فقط میتونی با Stack کار کنی که اندازه انواع روش فیکس هستن
    اگر از malloc یا new استفاده کنی مقدار بازگشتی اشاره گر به نا حیه ای از Heap است در غیر این صورت بستگی به global یا local بودنش داره(که بازم به هر حال جز Heap نیست چه اشاره گر چه غیره)

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •