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

ارور دادن برنامه زمان ساختن آرایه بزرگ

+3 امتیاز

من توی برنامم نیاز دارم که از یک آرایه بزرگ استفاده کنم ولی هر کار می کنم کد زیر اجرا نمیشه  و ارور میده :( چرا ؟؟؟


    srand (time(NULL));
    int array[1000000];
    for(int i = 0; i < 100000; i++){
        array[i] = (rand() % 100000) ;
    }

 

سوال شده فروردین 3, 1393  بوسیله ی shahin (امتیاز 48)   1 5 10

1 پاسخ

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

دلیلش اینه که شما دارید این آرایه رو در حافظه ی Stack میسازید .

و Stack برنامه شما جای همچین آرایه ای رو نداره .

یا شما باید اندازه Stack رو تغییر بدید یا اینکه این ارایه رو در Heap ایجاد کنید .

که البته همیشه همچین آرایه هایی رو در Heap ایجاد میکنن .

سعی کنید متغییرهای کوچک تر و موقتی در Stack ایجاد کنید .

شما باید از عملگر new یا پردازه ی () malloc برای ایجاد یک آرایه در حافظه ی Heap استفاده کنید .

درواقعا شما باید آرایه رو به این شکل درست کنید :

int* array = new int[1000000];

اینجا رو نگاه بنداز .

http://www.7khatcode.com/2252/%DA%86%D8%B1%D8%A7-%D8%A7%D8%B2-new-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D9%85%DB%8C-%DA%A9%D9%86%DB%8C%D9%85-%D8%9F

http://www.7khatcode.com/2224/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D8%A7%D8%B4%D8%A7%D8%B1%D9%87-%DA%AF%D8%B1-%D9%87%D8%A7-%D8%AF%D8%B1-c?show=2237#a2237

پاسخ داده شده فروردین 3, 1393 بوسیله ی Ali Rahbar (امتیاز 4,240)   6 16 46
انتخاب شد فروردین 4, 1393 بوسیله ی shahin
...