![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 12.01.2013
Сообщений: 14
|
![]()
Здравствуйте!
Я недавно начал учить С++ и сейчас, делая небольшой проект, столкнулся с о следующей проблемой: я создаю трехмерный массив [100][100][100], после запуска программы работа завершается до выполнения. Никаких ошибок или предупреждений не выдает. Когда меняю массив на [10][10][10], то все работает исправно. Вероятно компилятор накладывает ограничения. Как их можно изменить? Компилятор GNU GCC. Среда разработки CodeBlocks 10.05. На форуме уже поднимался подобный вопрос, но решения для себя не нашел. Опишите пожалуйста, что нужно делать для профана. Заранее благодарен! Послесловие 1: если это важно, то я пользуюсь Windows 7 x64. Послесловие 2: на всякий случай даю часть моего кода: Код:
Последний раз редактировалось Skrypnyk; 13.01.2013 в 01:38. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]()
попробуй вот так:
Код:
Последний раз редактировалось _Bers; 12.01.2013 в 18:30. |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
![]() Код:
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
![]() |
![]() |
![]() |
#4 |
Новичок
Джуниор
Регистрация: 12.01.2013
Сообщений: 14
|
![]()
Спасибо Вам. Да, так меня не выбрасывает из программы. Почему вынос объявления массива за пределы функции main исправляет это? Но тогда переменные не получают правильных значений:
Код:
Последний раз редактировалось Skrypnyk; 13.01.2013 в 01:38. |
![]() |
![]() |
![]() |
#5 |
Новичок
Джуниор
Регистрация: 12.01.2013
Сообщений: 14
|
![]()
Да, как я и писал, массив 10х10х10 работает, а 100х100х100 - нет. Насколько мне известно, компилятор может ограничивать размер файла.
Последний раз редактировалось Skrypnyk; 13.01.2013 в 01:35. |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
у вас в стеке есть место в размере sizeof(AtomType)*100*100*100?
дело не в размере памяти, а в том где она выделена. в статической памяти такое место есть, в динамическое тоже должно быть. но в локальной(стек) такого места не оказалось. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#7 |
Новичок
Джуниор
Регистрация: 12.01.2013
Сообщений: 14
|
![]() |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
большие объекты не создаем на стеке, а выделяем динамически, или статически.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#9 |
Новичок
Джуниор
Регистрация: 12.01.2013
Сообщений: 14
|
![]() |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
ну да, в адресном пространстве в 2Гб он создал массив более этого размера.
malloc(в С++ new) и указатели так или иначе связаны. или они, или глобальная переменная. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Microsoft SQL: создание ограничений для ячейки | Борцуха | Помощь студентам | 1 | 13.12.2012 07:51 |
добавление ограничений по множественным условия выбора значений | algeka | Microsoft Office Excel | 0 | 31.03.2011 14:55 |
Word 2010, VBA, изменение форм ворда или накладывание ограничений | simplecs | Microsoft Office Word | 4 | 25.01.2011 11:45 |
Проблема с вводом ограничений в Solver | kovalevskivf | Microsoft Office Excel | 0 | 12.11.2009 23:41 |
Задача - через Поиск решения и Прописывания ограничений | Angelholy | Microsoft Office Excel | 3 | 22.03.2009 13:08 |