как лучше выделить память под массив?
double **a=new double *[N];
for (int i=0; i<n;>=new double [N];
так, при миллион на миллион чисел, выкидывает из-за нехватки памяти
Другие языки программирования и технологии
c++ динамический массив
// code
#include <iostream>
using namespace std;
int main() {
size_t rows, cols;
cout << "rows, cols?.. ";
cin >> rows >> cols;
double ** matrix = new (nothrow) double * [rows];
if (matrix) {
for (rsize_t row = 0; row < rows; row ++) {
matrix[row] = new (nothrow) double [cols];
if (!matrix[row]) {
for (rsize_t r = 0; r < row; r++)
delete[] matrix[r];
delete[] matrix;
matrix = NULL;
break;
}
}
if (matrix) {
cout << "Well!\n";
for (rsize_t row = 0; row < rows; row ++)
delete[] matrix[row];
delete[] matrix;
matrix = NULL;
} else {
cout << "Very badly!!\n";
}
} else {
cout << "Very badly!\n";
}
cout << "The end!\n";
cin.get(); cin.get();
return 0;
}
// результат в консоли
// диспетчер задач, файл подкачки

#include <iostream>
using namespace std;
int main() {
size_t rows, cols;
cout << "rows, cols?.. ";
cin >> rows >> cols;
double ** matrix = new (nothrow) double * [rows];
if (matrix) {
for (rsize_t row = 0; row < rows; row ++) {
matrix[row] = new (nothrow) double [cols];
if (!matrix[row]) {
for (rsize_t r = 0; r < row; r++)
delete[] matrix[r];
delete[] matrix;
matrix = NULL;
break;
}
}
if (matrix) {
cout << "Well!\n";
for (rsize_t row = 0; row < rows; row ++)
delete[] matrix[row];
delete[] matrix;
matrix = NULL;
} else {
cout << "Very badly!!\n";
}
} else {
cout << "Very badly!\n";
}
cout << "The end!\n";
cin.get(); cin.get();
return 0;
}
// результат в консоли

// диспетчер задач, файл подкачки

Выложи полностью условие. Памяти тебе не хватит, это правильно сказали, но мне сложно представить себе задачу, в которой реально понадобится такой массив (ведь даже если тебе хватит оперативной памяти, все равно на перебор всех элементов уйдет 10^12 операций с плавающей запятой, что на типичном домашнем компьютере займет порядка минуты (с использованием графического ускорителя, конечно, побыстрее) , а на алгоритм сложностью O(n^2) - 30 тысяч лет...
Что то неверно в постановке задачи. Миллион на миллион - это 10 в 12 степени! Даже по 4 байта это 4*10^12 байт =3,7 Тб. У вас не хватит памяти.
дабл - 8 байт. Не всегда, конечно, но бывает.
миллион даблов - 8 миллионов байт = 8 МБ.
миллион раз по 8 МБ - 8 террабайт.
У тебя виртуальной памяти в компьютере точно не меньше 8 ТБ?
миллион даблов - 8 миллионов байт = 8 МБ.
миллион раз по 8 МБ - 8 террабайт.
У тебя виртуальной памяти в компьютере точно не меньше 8 ТБ?
Я насчитал 29 терабайт для 32х (4 байта на указатель) и 58 терабайт для 64х (8 байт на указатель)
(4)8,000,000 х 8,000,000 / 1024 / 1024 / 1024 / 1024
Но тебе даже 2 гигабайта не позволят выделить
(4)8,000,000 х 8,000,000 / 1024 / 1024 / 1024 / 1024
Но тебе даже 2 гигабайта не позволят выделить
Похожие вопросы
- динамический массив в Visual C++
- вопрос о динамических массивах в fortran
- пожалуйста, напишите мне программу этого вопроса в C ++.пожалуйста помогите. Создать динамический массив из N чисел.
- Как описать и использовать динамический массив в C++
- Написать программу в VBA арифметической прогрессии в динамическом массиве.
- С++: Как изменять размеры многомерных динамических массивов по ходу выполнения программы?
- Вычислить сумму нечетных элементов в программа С++ .Через статический и динамический массив! Вот я сам написал проверьте
- С++ Динамический массив
- Динамический массив. help
- Программирование С++ Что такое Динамические массивы?