Форум программистов, компьютерный форум CyberForum.ru

Статический массив большого размера - C++

Восстановить пароль Регистрация
 
c_user
1 / 1 / 0
Регистрация: 13.12.2010
Сообщений: 26
13.12.2010, 13:29     Статический массив большого размера #1
Здраствуйте, скорее всего данная проблема у многих есть,
этот код вызывает ошибку на этапе исполнения
C++
1
2
3
4
5
6
#include <windows.h>
int main()
{
    int qq[600000];
    Sleep(2000);
}
,
а этот:
C++
1
int qq[500000];
нет. В c++ есть какие то ограничения памяти?
p.s. я новичек
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2010, 13:29     Статический массив большого размера
Посмотрите здесь:

C++ Нужно создать статический массив строк как статический массив указателей на строки. Условние ниже -->
C++ Задан вещественный массив размера N. Создать целочисленный массив такого же размера, в котором будут записаны индексы исходного массива в порядке во
C++ создать статический массив строк как статический массив указателей на строки, задание ниже -->
Статический массив неопределенного размера C++
Как создать массив большого размера C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
RUSya82
 Аватар для RUSya82
236 / 114 / 3
Регистрация: 15.10.2010
Сообщений: 395
13.12.2010, 13:40     Статический массив большого размера #2
Определи массив глобально, вне функции main
C++
1
2
3
4
5
6
7
#include <windows.h>
int qq[600000];
int main()
{
    
    Sleep(2000);
}
c_user
1 / 1 / 0
Регистрация: 13.12.2010
Сообщений: 26
13.12.2010, 13:43  [ТС]     Статический массив большого размера #3
спасибо, а в чем проблема?


оо, возможно это и есть "переполнение стека"?
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
13.12.2010, 13:44     Статический массив большого размера #4
Локальные переменные хранятся в стеке. Размер стека зависит от компилятора (или ключей компилятора). Например, в MSVS C++ размер стека составляет 1МБ. Очень похоже на ваш случай 500000*2 байт -- хватает, а 600000*2 байт -- уже нет. Размер стека в MSVS C++ задается параметром /F.
Пользуйтесь динамической памятью.
RUSya82
 Аватар для RUSya82
236 / 114 / 3
Регистрация: 15.10.2010
Сообщений: 395
13.12.2010, 13:45     Статический массив большого размера #5
Максимальная размерность статического массива
Да, так оно и есть :-)
c_user
1 / 1 / 0
Регистрация: 13.12.2010
Сообщений: 26
13.12.2010, 13:48  [ТС]     Статический массив большого размера #6
огромное спасибо!
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
13.12.2010, 13:59     Статический массив большого размера #7
Про майкрософт не скажу, но в билдере, как я узнал недавно, если размер массива больше 64К нужно исползовать модификатор huge
C++
1
int huge mas[100000];
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2014, 12:43     Статический массив большого размера
Еще ссылки по теме:

Безуспешное освобождение памяти большого размера C++
Работа с текстовым файлом большого размера C++
Вычисление суммы в массивах большого размера C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5548 / 2562 / 233
Регистрация: 01.11.2011
Сообщений: 6,330
Завершенные тесты: 1
12.11.2014, 12:43     Статический массив большого размера #8
kazak, вот про это вот разговор: Intel Memory Model? Я такого со времен турбо паскаля не видел. Даже не сразу вспомнил.
Yandex
Объявления
12.11.2014, 12:43     Статический массив большого размера
Ответ Создать тему
Опции темы

Текущее время: 12:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru