![]() |
Модераторы: 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. |