![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| abrek |
|
|||
|
Unregistered |
Создаю двумерный массив типа:
double[200][200], с ним можно нормально работать. Увеличиваю размерность до double[300][300] - вылезает ошибка о переполнении стека. Что это за фича? Как ее обойти? И вообще, чем определяется максимально-возможная размерность статического массива? Заранее благодарен... |
|||
|
||||
| Crait |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 244 Регистрация: 20.2.2003 Репутация: нет Всего: 1 |
Да ты его, видать, в функцию по значению передаешь.
Передавай ссылку. |
|||
|
||||
| abrek |
|
|||
|
Unregistered |
Ну, да в функцию. А как его передать по ссылке? Пробовал так:
func(**massiv) Не прокатывает - пишет, что не может конвертировать double*[300] в double**.(или наоборот - не помню сейчас). Была мысль сакать указателем по одномерному массиву как будто он двумерный, но это для меня пока сложновато - я только начинаю изучать язык, да и дальнейшие расчеты наверное усложнит. Мне ведь надо находить определитель этого массива-матрицы. Так как же мне быть? |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 17 Всего: 110 |
можно, например, объявить double[300*300]
доступ будет с таким индексом: [300*y+x] а вообще нехорошо объявлять большие массивы, лучше использовать динамическое выделение памяти: оно для этого предназначено -------------------- qqq |
|||
|
||||
| Borisff2003 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 198 Регистрация: 26.2.2004 Где: г. Уфа Репутация: 1 Всего: 1 |
Проблема не в том, что ты его передаешь в функцию(массивы передаются как указатели, а не по значению!), а как ты его оъявляеш.
void a{ double d[300][300]; } Вызывает переполнение стека, так как статические переменные храняться в стеке, а он у тебя не бесконечный! Попробуй динамическое выделение или vector. --------------------
Лень, двигатель прогресса |
|||
|
||||
| podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: 1 Всего: 62 |
Делай примерно так:
Внутри функции можешь работать с X[i][j], как нравится. З.Ы. Можешь поверить, у меня матрицы достаточно большие |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |