@Nemovok
Учусь в школе =)

Как передать двумерный массив в функцию?

Здравствуйте. Не получается заставить работать. Получаю ошибки:
project_two.cpp:5:44: error: ‘sizeMatrix’ was not declared in this scope
 void fillingAndShowElementsMatrix (int m[][sizeMatrix], int sm);
                                            ^
project_two.cpp:5:55: error: expected ‘)’ before ‘,’ token
 void fillingAndShowElementsMatrix (int m[][sizeMatrix], int sm);
                                                       ^
project_two.cpp:5:57: error: expected unqualified-id before ‘int’
 void fillingAndShowElementsMatrix (int m[][sizeMatrix], int sm);
                                                         ^
project_two.cpp:18:44: error: ‘sizeMatrix’ was not declared in this scope
 void fillingAndShowElementsMatrix (int m[][sizeMatrix], int sm){
                                            ^
project_two.cpp:18:55: error: expected ‘)’ before ‘,’ token
 void fillingAndShowElementsMatrix (int m[][sizeMatrix], int sm){
                                                       ^
project_two.cpp:18:57: error: expected unqualified-id before ‘int’
 void fillingAndShowElementsMatrix (int m[][sizeMatrix], int sm){
                                                                                           ^

Вот код:
#include <iostream>
#include <cstdlib>
using namespace std;

void fillingAndShowElementsMatrix (int m[][sizeMatrix], int sm);

int main (void){
  const int sizeMatrix = 10;
  int matrix[sizeMatrix][sizeMatrix];
  int minElementMatrix = 0;
  int maxElementMatrix = 0;
  
  fillingAndShowElementsMatrix (matrix, sizeMatrix);
 
  return 0; 
}

void fillingAndShowElementsMatrix (int m[][sizeMatrix], int sm){
  for (int i = 0; i < sm; i++){
    for (int j = 0; j < sm; j++){
      m[i][j] = rand () % 31 + 30;
      cout << m[i][j] << endl;
    }
  }
}
  • Вопрос задан
  • 221 просмотр
Решения вопроса 1
petermzg
@petermzg
Самый лучший программист
А что такое sizeMatrix для компилятора в строке
void fillingAndShowElementsMatrix (int m[][sizeMatrix] ...);

Переменные, даже константные не могут быть в таком определении.

Определите в начале
#define SIZEMATRIX     10

void fillingAndShowElementsMatrix (int m[][SIZEMATRIX] ...);
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
vt4a2h
@vt4a2h Куратор тега C++
Senior software engineer (C++/Qt/boost)
Выше ответиили в комментариях по факту про разные способы от себя добавлю, что вобще лучше использовать std::vector<std::vector<T>> или что-нибудь вроде boost::numeric::ublas::matrix. Тут от целей зависит конечно же.
Ответ написан
@Nemovok Автор вопроса
Учусь в школе =)
Спасибо добрый человек!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы