سوال در مورد ارایه های بزرگ
سلام من یک سوال از اساتید داشتم که ممنون میشم اگر پاسخ دهند. من وقتی در C++ یک ارایه سه بعدی مثلا با ابعاد 100*200*50 تعریف میکنم به محض اجرای برنامه خطای stack overflow به وجود میاید و برنامه اجرا نمیشود. میخواستم بدانم چطور میشود حافظه تخصیص یافته به کامپایلر( 6++visual C)را اضافه کرد تا بتوان ارایه های بزرگتر را تعریف کرد. ایا راههای دیگری نیز برای تعریف ارایه های بزرگ وجود دارد؟ ممنون
نقل قول: سوال در مورد ارایه های بزرگ
با سلام
خسته نباشید. میشه لطف کنید پاسخ این سوال رابفرستید؟
برنامه ای که یک ماتریس 50*50 را تعریف کرده و مقادیر درون این ماتریس را با اعداد تصادفی پر کرده و سپس دترمینان این ماتریس را محاسبه کند؟( برنامه به زبان java باشد)
نقل قول: سوال در مورد ارایه های بزرگ
این روش درستی نیست، و خیلی Overlap داره، مثلا:
x[ 20 * 20 * 10]
x[ 10 * 20 * 20]
x[ 20 * 10 * 20]
x[ 10 * 200 * 2]
همه به یک نقطه اشاره می کنند، و همه معادل [x[4000 هستند.
یک روش برای این کار:
#include <vector>
const int nrows = 1000;
const int ncols = 1000;
std::vector<std::vector<int>> array;
array.resize(nrows);
for (int i = 0; i < nrows; i++)
{
array[i].resize(ncols);
}
برای مقداردهی:
array[i][j]=200;
موفق باشید.