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

نام تاپیک: آرایه پویا دو بعدی در C++‎

  1. #1

    آرایه پویا دو بعدی در C++‎

    سلام. چطور در C++‎ آرایه پویای دوبعدی تعریف کنم. دستور زیر برای آرایه یک بعدی کار میکنه:

    int *pInt = new int[10];


    ولی اگه بخوام به صورت زیر دوبعدی تعریف کنم کامپایلر ارور میده:


    int *s=new int[n][n];

  2. #2
    کاربر دائمی آواتار Keyhan Clever
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    گرگان
    سن
    28
    پست
    134

    نقل قول: آرایه پویا دو بعدی در C++‎

    سلام
    int (*count)[5]

    for(i=0;i<m;i++)
    for(j=0;j<5;j++)
    با سلام خدمت شما دوست عزیز.
    دوست من این کار کاملا شبیه آرایه ی یک بعدی پویا است با این تفاوت که شما پس از ساخت یک آرایه ی یک بعدی پویا ، یک فور گذاشته و با هر کدام از بخش های آرایه ی ساخته شده ، بعد دوم آرایه ی مورد نظر را می سازید.

    اگه یه کم جستجو میکردید پیدا میشد


  3. #3
    کاربر دائمی آواتار Keyhan Clever
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    گرگان
    سن
    28
    پست
    134

    Lightbulb نقل قول: آرایه پویا دو بعدی در C++‎

    اصلا میگم اگه توضیح کامل میخواین :
    برای توضیح بیشتر به لینک زیر هم سری بزنید :
    https://barnamenevis.org/archiv...p/t-92191.html

  4. #4
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    ایران سرای من است
    پست
    2,655

    نقل قول: آرایه پویا دو بعدی در C++‎

    سلام:
    شما وقتی که با اشاره گر ها کار میکنی میتونی هر ویرایش روش انجام بدی خوب میتونی دو روش زیر رو بکار ببری.
    موفق باشید.
     
    int **s;
    s=(int **)new int[10][10];

    int **s;
    s=(int **)new int[10*10];
    آخرین ویرایش به وسیله tdkhakpur : پنج شنبه 24 اردیبهشت 1388 در 23:37 عصر دلیل: اصلاح لغات

  5. #5
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    ایران سرای من است
    پست
    2,655

    نقل قول: آرایه پویا دو بعدی در C++‎

    سلام:
    اما فکر می کنم توی compilerرای قدیمی مشکلی نداشته باشه
    گذری عبور کردیم. دوستومون اون بالا خیلی دوست داره مطالعات درسیشو پیاده کنه.
    من برنامه نویسی رو خیلی وقته شروع کردم یه 10 12 سالی میشه باید گه کهنه شده.
    عزیز من - یه اشاره گر مفهموش یعنی نشان دادن محلی از حافظه این کدها رو یه نگاهی بکن تا به اطلاعات عمومیت اضافه بشه و هیچ وقت یادت نره حافظه ای رو که از سیستم گرفتی بهش برگردونی ها.
     
    long *lPtr, n;
    n = 5;
    (void*)lPtr = (void*) new char[n];
    for( int i=0; i<n; i++, lPtr[i]=i, lPtr[i]+=i);
    for( int i=0; i<n; i++, cout<<" "<<lPtr[i]);
    delete [] lPtr;
    آخرین ویرایش به وسیله tdkhakpur : جمعه 25 اردیبهشت 1388 در 05:02 صبح

  6. #6

    نقل قول: آرایه پویا دو بعدی در C++‎‎

    سلام.راحترین روش برای ایجاد آرایه دوبعدی پویا در C++‎‎ به این شکل است:

    #include <iostream>
    #include <conio>

    void main()
    {
    int **a=new int*[10];

    for(int i=0;i<10;i++)
    a[i]=new int[10];

    for(int i=0;i<10;i++)
    for(int j=0;j<10;j++)
    a[i][j]=(i+1)*(j+1);

    for(int i=0;i<10;i++)
    {
    for(int j=0;j<10;j++)
    cout<<a[i][j]<<'\t';
    cout<<endl;
    }
    getch();
    }

  7. #7

    نقل قول: آرایه پویا دو بعدی در C++‎‎‎

    این که شبیه جدول ضربه!
    تازه چند بار متغیر i رو تعریف کردی 1بار کافی بود

  8. #8
    کاربر دائمی آواتار Cancer
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    <include <Cancer.h#
    پست
    135

    نقل قول: آرایه پویا دو بعدی در C++‎

    سلام سلام سلام
    من قبلاً با اشاره گرها آرایه دو بعدی پویا ایجاد کردم.
    حالا اگه یادم بیاد
    فکر کنم این طوری بود:

    int *p = new int[10,10]

    خدا کنه درست یادم اومده باشه.
    فقط مطمئنم که به همین سادگی بود.
    نمی خواست کاره دیگه انجام بدی.

    تشکر.

  9. #9
    کاربر دائمی آواتار shahmohammadi
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    کلیبر
    پست
    475

    نقل قول: آرایه پویا دو بعدی در C++‎

    سلام به همه.
    نقل قول نوشته شده توسط Cancer مشاهده تاپیک
    سلام سلام سلام
    من قبلاً با اشاره گرها آرایه دو بعدی پویا ایجاد کردم.
    حالا اگه یادم بیاد
    فکر کنم این طوری بود:

    int *p = new int[10,10]

    خدا کنه درست یادم اومده باشه.
    فقط مطمئنم که به همین سادگی بود.
    نمی خواست کاره دیگه انجام بدی.

    تشکر.
    *p يعني يه بعدي. شايد منظورتون هموني هست كه توي ساختمان داده خونده بوديم:
    int *ary = new int[sizeX*sizeY];

    تو اين روش به جاي عبارت ساده ي ary[i][j] عبارت زير رو بايد بنويسم كه اصلا هم ساده تر از قبلي نيست:
    ary[i*sizeY+j]

    ساده ترين روشش همون روشي هست كه دوستمون star_rh گفتن. آزاد كردن حافظه تو روش ايشون هم به صورت زير هست:
    for(int i = 0; i < Y; ++i) {
    delete [] ary[i];
    }
    delete [] ary;
    آخرین ویرایش به وسیله shahmohammadi : یک شنبه 11 دی 1390 در 00:58 صبح

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

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