سلام. چطور در C++ آرایه پویای دوبعدی تعریف کنم. دستور زیر برای آرایه یک بعدی کار میکنه:
int *pInt = new int[10];
ولی اگه بخوام به صورت زیر دوبعدی تعریف کنم کامپایلر ارور میده:
int *s=new int[n][n];
سلام. چطور در C++ آرایه پویای دوبعدی تعریف کنم. دستور زیر برای آرایه یک بعدی کار میکنه:
int *pInt = new int[10];
ولی اگه بخوام به صورت زیر دوبعدی تعریف کنم کامپایلر ارور میده:
int *s=new int[n][n];
سلام
int (*count)[5]
for(i=0;i<m;i++)
for(j=0;j<5;j++)
با سلام خدمت شما دوست عزیز.
دوست من این کار کاملا شبیه آرایه ی یک بعدی پویا است با این تفاوت که شما پس از ساخت یک آرایه ی یک بعدی پویا ، یک فور گذاشته و با هر کدام از بخش های آرایه ی ساخته شده ، بعد دوم آرایه ی مورد نظر را می سازید.
اگه یه کم جستجو میکردید پیدا میشد
اصلا میگم اگه توضیح کامل میخواین :
برای توضیح بیشتر به لینک زیر هم سری بزنید :
https://barnamenevis.org/archiv...p/t-92191.html
سلام:
شما وقتی که با اشاره گر ها کار میکنی میتونی هر ویرایش روش انجام بدی خوب میتونی دو روش زیر رو بکار ببری.
موفق باشید.
int **s;
s=(int **)new int[10][10];
int **s;
s=(int **)new int[10*10];
آخرین ویرایش به وسیله tdkhakpur : پنج شنبه 24 اردیبهشت 1388 در 23:37 عصر دلیل: اصلاح لغات
سلام:
گذری عبور کردیم. دوستومون اون بالا خیلی دوست داره مطالعات درسیشو پیاده کنه.اما فکر می کنم توی 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 صبح
سلام.راحترین روش برای ایجاد آرایه دوبعدی پویا در 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();
}
این که شبیه جدول ضربه!
تازه چند بار متغیر i رو تعریف کردی 1بار کافی بود
سلام سلام سلام
من قبلاً با اشاره گرها آرایه دو بعدی پویا ایجاد کردم.
حالا اگه یادم بیاد
فکر کنم این طوری بود:
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 صبح