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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
tvy2
0 / 0 / 0
Регистрация: 05.11.2008
Сообщений: 27
#1

Ошибка при большом размере массива - C++

23.12.2011, 20:31. Просмотров 852. Ответов 3
Метки нет (Все метки)

Есть код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
 
main()
{
int y=0;
const int i=10000000; // если i=1000000 работает, если больше, например 10000000 - не работает.
unsigned __int8 m[i]; // массив для временного хранения файла 
FILE *f1;
f1=fopen("v2.txt", "rb"); // открытие файла для чтения 
y=fread(m, 1, i, f1); // чтение файла в массив m 
y=fclose(f1);
}
Если i=1000000 все работает, а если i больше, например i=10000000, то выдается ошибка
System.Stackoverflowexception.
Как с этим бороться?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2011, 20:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка при большом размере массива (C++):

Программа завершается при большом размере матрицы смежности - C++
Добрый день! Прошу помощи по решению проблемы. В общем я пишу программу для работы с графами (точнее с матрицей смежности графов). Пишу...

Как компилятор узнаёт о размере массива при выполнении операции delete? - C++
Такой глупый вопрос появился при изучении операций new и delete. Я создаю указатель на массив int с помощью операции new. int size; ...

Заполнение лидирующими нолями при неравном размере строк - C++
Решил попробовать длинную арифметику... Начал с суммы. Реализовал собственно сумму и застопорился на добавлении лидирующих нолей=\ ...

Где - то слышал, что в указателе сохраняется информация о размере массива, верно ли это? - C++
Привет! Ну вот допустим: int *X = new int; Можно ли по указателю X как то явно узнать, что он ссылается на непрерывный блок...

Как передать в фукнцию массив без передачи дополнительных данных о размере массива? - C++
Если передавал по указателю, то не не указал размер, а как могу определить условие цикла, если хочу, чтоб работал до последнего элемента. ...

Зависит ли от платформы значение выражения -1u, при размере типа, равном 32 бита? - C++
Кто как думает, значение выражения -1u зависит от платформы или нет? :D

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Aniskov
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 111
24.12.2011, 16:52 #2
http://www.relib.com/forums/thread858502.aspx

Там двумерный, но думаю поймешь.
CoolGun
1 / 1 / 0
Регистрация: 18.07.2010
Сообщений: 36
27.12.2011, 10:05 #3
Динамически выделить маvfccbd
new, malloc, LocalAlloc, HeapAlloc
еще наверно с 10 к наберется функций

А так лучше мэпирвать файл в память, в винде
CreateFileMapping
dp_maximk
Сообщений: n/a
18.01.2012, 13:51 #4
А есть ли какие-то ограничения по памяти, если выделять ее динамически?
Или можна использоваь всю что есть?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2012, 13:51
Привет! Вот еще темы с ответами:

Нестабильная работа программы при большом количестве строк во входном потоке - C++
Вопрос с подвохом: пользователь вставляет n строк символов в консоль, где n &gt; 1000. Задание - сделать так, чтобы программа не зависала и не...

При добровольном страховании домашнего имущества по договорам, составленным на срок менее года, страховые платежи вносятся в размере: - C++
При добровольном страховании домашнего имущества по договорам, составленным на срок менее года, страховые платежи вносятся в размере: 30%...

Ошибка при формировании массива из другого массива - C++
Вот задание: Дан вещественный массив А. Будем называть «соседями» элемента А такие элементы массива А, соответствующие индексы которых...

Ошибка нарушения прав доступа при чтении по адресу, возникающая при инициализации трехмерного массива - C++
Очень нужна ваша помощь! Я уже не знаю что тут можно сделать. Код части программы, где вылазит ошибка ниже. Коротко о проблеме: я...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.01.2012, 13:51
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru