crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Максимальный размер QByteArray
Гость_Tigr_*
сообщение 22.4.2011, 5:18
Сообщение #1





Гости








    


Какое максимальное количество байтов может принять QByteArray? У меня свыше 512Мбайт выходит сообщение Runtime Error.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 22.4.2011, 6:45
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

Спасибо сказали: 40 раз(а)




Репутация:   6  


Цитата(Tigr @ 22.4.2011, 7:18) *
Какое максимальное количество байтов может принять QByteArray? У меня свыше 512Мбайт выходит сообщение Runtime Error.


А в системе есть 512 оперативки одним непрерывным куском?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
PAFOS
  опции профиля:
сообщение 22.4.2011, 7:50
Сообщение #3


Активный участник
***

Группа: Участник
Сообщений: 258
Регистрация: 27.12.2010
Из: Дмитров
Пользователь №: 2309

Спасибо сказали: 29 раз(а)




Репутация:   8  


Цитата
А в системе есть 512 оперативки одним непрерывным куском?


А что это как-то влияет? :unsure:
Проге же по фигу скока физической ОЗУ, память выделяет ОС, которая делит ОЗУ на страницы по Nкб каждая.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
PAFOS
  опции профиля:
сообщение 22.4.2011, 8:21
Сообщение #4


Активный участник
***

Группа: Участник
Сообщений: 258
Регистрация: 27.12.2010
Из: Дмитров
Пользователь №: 2309

Спасибо сказали: 29 раз(а)




Репутация:   8  


У меня тоже больше 512 выкидывает bad alloc. Это уже ограничения ОС получается...

0     kernel32!RaiseException 0x7c812afb <=== Вот тут ОС выкидывает std::bad_alloc ексепшн
1     MSVCR90D!CxxThrowException 0x102af8f2
2     C:\Qt\4.7.1\src\corelib\global\qglobal.cpp:2020 (QtCored4!qBadAlloc) 0x67057a8c
3     C:\Qt\4.7.1\src\corelib\tools\qbytearray.cpp:1442 (QtCored4!QByteArray::realloc) 0x6706f138
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 22.4.2011, 10:08
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Гость_Tigr_* @ 22.4.2011, 8:18) *
У меня свыше 512Мбайт
а как ты туда 512 МБ помещаешь?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Tigr_*
сообщение 22.4.2011, 10:41
Сообщение #6





Гости








    


В системе два модуля по 1024
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Tigr_*
сообщение 22.4.2011, 10:43
Сообщение #7





Гости








    


Про другой комп написал. У этого два модуля по 2гига.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 22.4.2011, 10:47
Сообщение #8





Гости








    


Цитата(Litkevich Yuriy @ 22.4.2011, 10:08) *
Цитата(Гость_Tigr_* @ 22.4.2011, 8:18) *
У меня свыше 512Мбайт
а как ты туда 512 МБ помещаешь?

...
QByteArray file_list,file_list2;
...
while ...
{
      ...
      file_list.append(file_list2);
      ...
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 22.4.2011, 17:24
Сообщение #9


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Конструктор QByteArray ( int size, char ch )
т.к., размер не может быть меньше нуля, стало быть теоритический максимальный размер - половина int-а (2^31 = 2'147'483'648 байт).

а вообще стоит тролям задать вопрос
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ssoft
  опции профиля:
сообщение 24.6.2011, 12:58
Сообщение #10


Участник
**

Группа: Участник
Сообщений: 130
Регистрация: 17.2.2010
Из: Москва
Пользователь №: 1470

Спасибо сказали: 30 раз(а)




Репутация:   3  


Цитата(Litkevich Yuriy @ 22.4.2011, 18:24) *
Конструктор QByteArray ( int size, char ch )
т.к., размер не может быть меньше нуля, стало быть теоритический максимальный размер - половина int-а (2^31 = 2'147'483'648 байт).

а вообще стоит тролям задать вопрос


Дело не в QByteArray, а в возможности оси выделить 512МБ или более памяти одним неделимым куском (не нужно путать с памятью выделяемой процессу).
Если куска такого размера у оси нет, то абзац виолейшн, и троли тута ни причем.

У меня ось 64 бит спокойно выделяет 1ГБ и больше.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 23.4.2024, 12:28