PDA

View Full Version : سوال: چرا کد در auto اولی درست است و در auto اولی غلط است؟



motherboard
دوشنبه 10 شهریور 1393, 19:53 عصر
سلام.در کد زیر چرا خط 2 خطاست و خط 3 صحیح است و باز خط چهارم خطاست؟؟؟ در auto اولی با auto دومی چه تفاوتی هست؟

int n = 42;
double a[n][5]; // Error
auto p1 = new double[n][5]; // OK
auto p2 = new double[5][n]; // Error

omid_kma
دوشنبه 10 شهریور 1393, 20:23 عصر
به auto ربطی نداره n رو باید const تعریف کنی تا ارور نده
چون موزد 2 و4 داری آرایه تعریف می کنی سایز آرایه باید const باشه
مورد سوم بخاطر این ارور نمیده چون وقتی مینویسی double[n][5] داری یک آرایه 5 تایی از پوینتر میسازی

double *a=new int[n];//new andaze 5 ta int hafeze migire va esharegar be aval hafeze gerefte shode bar migardoone
auto b=new int[n][5];//yek array ba size 5 az pointer ee ke be aval hafeze ee ke n ta int hast eshare mikone misaze
auto c=new int[5][n];//inja chon mikhahim az pointer array besazim bayad n const bashe vagarna error mide

rahnema1
دوشنبه 10 شهریور 1393, 20:45 عصر
در مورد new به جز بعد اول که می تونه «عبارت عددی» باشه ، بقیه باید «عبارت ثابت عددی» باشه
اما در مورد آرایه معمولی ،در صورت تعیین بعد ،تماما باید عبارت ثابت عددی باشه

int n=2;
int b[4][3][2][7];
auto c= new int[n][4][8][3];