auto و ارایه پویا - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

auto و ارایه پویا

+2 امتیاز

سلام دوستان

این کد چرا داخل حلقه رو اجرا نمیکنه؟

int *x , n;
cin >> n;
x = new int[sizeof(int)*n];
for(auto &i:x){
        cin >> i;
}

 

سوال شده شهریور 20, 1393  بوسیله ی moh3en (امتیاز 209)   15 28 40
new با malloc فرق می کنه نیازی به ضرب کردن n در sizeof ندارید

1 پاسخ

+3 امتیاز
 
بهترین پاسخ

Range based for بر روی آرایه استاتیک و container ها عمل می کنه.

راه حل اول که آرایه دینامیک را به استاتیک تبدیل کنید.

راه حل دوم یک container بر روی داده ها ایجاد کنید.

	int *x, n;
	
	x = new int[sizeof(int)*n];
	vector<int> x_(x, x + n);
	for (auto &i : x_){
		cin >> i;
	}

 

پاسخ داده شده شهریور 20, 1393 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
انتخاب شد شهریور 22, 1393 بوسیله ی Ali Rahbar
...