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