С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/47: Рейтинг темы: голосов - 47, средняя оценка - 4.51
11 / 11 / 1
Регистрация: 24.11.2015
Сообщений: 359
1

В чем ошибка при передачи статического массива в функцию

12.11.2016, 16:44. Показов 9187. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не кидайте камни за использование глобальных переменных и статических двумерных массивов.
Вроде все делаю по науке, вот так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
using namespace std;
int dimensity=20;
 
void make_array_equals_to_zero(float A[ ][dimensity])
{
       for(int i(0);i<dimensity;i++){
          for(int j(0);j<dimensity;j++){
             A[i][j]=0;
          }
       }
 
       for(int i(0);i<dimensity;i++){
          for(int j(0);j<dimensity;j++){
             cout<<A[i][j];
          }
       }       
}
 
// на входе Omega[][] и Psi_Old[][], на выходе - новое Psi[][], 
/***float calculation_Psi( float**Psi_old, int dimensity, float **Omega ){
float **Psi; 
 
 
return Psi;
}*/
 
 
float h = 10/ (dimensity);
float d_time= 0,2*h*h;
float eps = 0,0001;
float  Omega[dimensity][dimensity];
float Psi[dimensity][dimensity];
int main(){
make_array_equals_to_zero (Omega, dimensity);
return 0;
}
а получаю вот такое:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
common.cpp:5:50: error: array bound is not an integer constant before ‘]’ token
 void make_array_equals_to_zero(int A[ ][dimensity])
                                                  ^
common.cpp: In function ‘void make_array_equals_to_zero(...)’:
common.cpp:9:14: error: ‘A’ was not declared in this scope
              A[i][j]=0;
              ^
common.cpp:15:20: error: ‘A’ was not declared in this scope
              cout<<A[i][j];
                    ^
common.cpp: At global scope:
common.cpp:30:17: error: expected unqualified-id before numeric constant
 float d_time= 0,2*h*h;
                 ^
common.cpp:31:15: error: expected unqualified-id before numeric constant
 float eps = 0,0001;
               ^
common.cpp:32:23: error: array bound is not an integer constant before ‘]’ token
 float  Omega[dimensity][dimensity];
                       ^
common.cpp:32:34: error: array bound is not an integer constant before ‘]’ token
 float  Omega[dimensity][dimensity];
                                  ^
common.cpp:33:20: error: array bound is not an integer constant before ‘]’ token
 float Psi[dimensity][dimensity];
                    ^
common.cpp:33:31: error: array bound is not an integer constant before ‘]’ token
 float Psi[dimensity][dimensity];
                               ^
common.cpp: In function ‘int main()’:
common.cpp:35:28: error: ‘Omega’ was not declared in this scope
 make_array_equals_to_zero (Omega, dimensity);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2016, 16:44
Ответы с готовыми решениями:

Все способы передачи статического массива в функцию
Здравствуйте уважаемые форумчане. Предлагаю выложить сюда все способы передачи СТАТИЧЕСКИХ массивов...

Размер массива при передачи в функцию
День добрый, подскажите столкнулся с такой проблемой: void masssize (char mass) { int size =...

Чем является имя статического массива?
Всем доброго дня!:) Имя массива-это иными словами указатель на нулевой элемент участка памяти....

Ошибка чтения памяти при передачи массива в параметрах в конструктор
Вот класс class IntSet { private: int *ArrOfInt; int *XZ; int size; public: IntSet(); ...

3
223 / 213 / 80
Регистрация: 26.04.2013
Сообщений: 972
12.11.2016, 17:04 2
C++
1
const int dimensity=20;
1
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
12.11.2016, 17:05 3
Написано же тёмным по светлому:
array bound is not an integer constant before ‘]’ token
Суть: размерность массива не является константой.
1
11 / 11 / 1
Регистрация: 24.11.2015
Сообщений: 359
12.11.2016, 17:17  [ТС] 4
Все поправил, спасибо!
Теперь получаю ошибку

Bash
1
2
3
4
5
6
7
8
9
/tmp/cc7UCy3v.o: In function `make_array_equals_to_zero(float (*) [20])':
common.cpp:(.text+0xa7): undefined reference to `std::cout'
common.cpp:(.text+0xac): undefined reference to `std::ostream::operator<<(float)'
common.cpp:(.text+0xb1): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
common.cpp:(.text+0xb9): undefined reference to `std::ostream::operator<<(std::ostream& (*)(std::ostream&))'
/tmp/cc7UCy3v.o: In function `__static_initialization_and_destruction_0(int, int)':
common.cpp:(.text+0x104): undefined reference to `std::ios_base::Init::Init()'
common.cpp:(.text+0x113): undefined reference to `std::ios_base::Init::~Init()'
collect2: error: ld returned 1 exit status
Что не так с потоками вывода?

Добавлено через 8 минут
Аа, ну понятно!
Компилирую gcc в Ubuntu, а тут лучше использовать
Bash
1
g++ [имя программы]
а не

Bash
1
gсс [имя программы]
1
12.11.2016, 17:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.11.2016, 17:17
Помогаю со студенческими работами здесь

Передача статического массива в функцию
Подскажите как передать двумерный статический массив в функцию void func(int arr); void main(){...

Передача двумерного статического массива в функцию
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;time.h&gt; #include &lt;cstdlib&gt; #include &lt;fstream&gt;...

Передача двумерного статического массива в функцию
динамический массив передаётся (строки в комментах), статический - нет. в чём причина ? ...

Передача статического двумерного массива в функцию
Добрый вечер. Вот один из способов передачи статической матрицы в ф-ию: void f(int arr) { ......


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru