من توی برنامم نیاز دارم که از یک آرایه بزرگ استفاده کنم ولی هر کار می کنم کد زیر اجرا نمیشه و ارور میده :( چرا ؟؟؟
srand (time(NULL)); int array[1000000]; for(int i = 0; i < 100000; i++){ array[i] = (rand() % 100000) ; }
دلیلش اینه که شما دارید این آرایه رو در حافظه ی 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