Максимальный размер массива |
Здравствуйте, гость ( Вход | Регистрация )
Максимальный размер массива |
Петр91 |
15.1.2012, 7:24
Сообщение
#1
|
Студент Группа: Участник Сообщений: 19 Регистрация: 10.6.2011 Пользователь №: 2731 Спасибо сказали: 0 раз(а) Репутация: 0 |
Ответа на данный вопрос в интернете не нашел, да и то, там только про VS.
Создаю массив в теле главной функции double *teta = new double [(M+1)*(N+1)*h]; и при больших значениях компилятор ругается, как увеличить максимальный размер массива? Прошу прощения, ошибка была не в массиве..) Но все равно, для интереса, как увеличить и макс размер какой может быть? |
|
|
ilyabvt |
15.1.2012, 14:41
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 297 Регистрация: 23.6.2011 Пользователь №: 2765 Спасибо сказали: 45 раз(а) Репутация: 3 |
Я так думаю что максимальный размер массива для 32 битных систем это 4294967296.
Увеличить никак, только создавать второй массив. |
|
|
Алексей1153 |
16.1.2012, 8:04
Сообщение
#3
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
|
|
|
ilyabvt |
16.1.2012, 18:41
Сообщение
#4
|
Активный участник Группа: Участник Сообщений: 297 Регистрация: 23.6.2011 Пользователь №: 2765 Спасибо сказали: 45 раз(а) Репутация: 3 |
ага, где его, второй, создавать, если первый уже всё возможное ОЗУ сожрал ? О точно. Что-то я погорячился, да и с максимальным размером размером тоже переборщил, ОС все-таки не все 4 гига задействует, а немного меньше. Сообщение отредактировал ilyabvt - 16.1.2012, 18:42 |
|
|
BRE |
16.1.2012, 20:33
Сообщение
#5
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
|
|
|
Алексей1153 |
18.1.2012, 7:25
Сообщение
#6
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
теоретишно, можно применить std::vector с переопределённым аллокатором так, тогда что массива будет ограничен размером винта )) Но сам ни разу ещё не переопределял аллокатор, не доводилось случая.
Сообщение отредактировал Алексей1153 - 18.1.2012, 7:26 |
|
|
BRE |
18.1.2012, 8:21
Сообщение
#7
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
теоретишно, можно применить std::vector с переопределённым аллокатором так, тогда что массива будет ограничен размером винта )) Но сам ни разу ещё не переопределял аллокатор, не доводилось случая. Ну это если винт будет пару гигов. А если серьезно, то на 64 битных платформах еще можно, там объемы адресного пространства соизмеримы с объемами винтов (и никаких алокаторов писать не нужно), а для 32 бит - это фантастика. |
|
|
Алексей1153 |
18.1.2012, 9:51
Сообщение
#8
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Ну это если винт будет пару гигов ну вообще-то да, индекс же ограничен в контейнере типом UINT32. Так что в 32 отпадает )) но тут, опять же, необязательно с типом BYTE в контейнере работать. Если value type больше байта по размеру - то больше 2 гигов памяти можно будет использовать Сообщение отредактировал Алексей1153 - 18.1.2012, 9:53 |
|
|
BRE |
18.1.2012, 9:55
Сообщение
#9
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
но тут, опять же, необязательно с типом BYTE в контейнере работать. Если value type больше байта по размеру - то больше 2 гигов памяти можно будет использовать Нет размер адресного пространства для 32 бит ограничен 4Гб, больше не получиться никак. А если вспомнить, что это пространство делит еще и ядро и оставляет для пользовательского пространства 2/3 Гб (в зависимости от ОС), то больше 2/3 Гб использовать не получиться все равно. |
|
|
Sokoloff |
18.1.2012, 10:25
Сообщение
#10
|
Участник Группа: Участник Сообщений: 237 Регистрация: 1.4.2009 Из: Москва Пользователь №: 654 Спасибо сказали: 50 раз(а) Репутация: 11 |
Может использовать QFile::map?
http://doc.trolltech.com/main-snapshot/qfile.html#map |
|
|
Текстовая версия | Сейчас: 25.11.2024, 21:05 |