Форум программистов, компьютерный форум CyberForum.ru

Ошибка "неверный тип для индекса массива" при работе с двумерным массивом - C++

Восстановить пароль Регистрация
 
MurderKnot
-98 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 32
15.10.2013, 14:27     Ошибка "неверный тип для индекса массива" при работе с двумерным массивом #1
Возникла вот такая проблемы при выполнении работы:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int step_right(int *a,int n,int m,int i,int j){
  int flower = 0;
  if ((n<i)&&(m<j-1)){
      flower+=a[n][m]-a[n][m+1]; //неверный тип для индекса массива для переменной m
    }
  else{
      flower+=0;
    }
  return flower;
}
 
int step_right2(int *a, int n, int m, int i, int j){
  int flower = 0;
  if ((n<i)&&(m<j-2)){
      flower+=2*(a[n][m]-a[n][m+2]); //неверный тип для индекса массива  для переменной m
    } 
  else{
      flower+=0;
    }
  return flower;
}
Прошу помощи, ибо перерыл уже весь форум всю сеть и ничего толком не нашёл. С одномерным массивом такого не происходит. Если есть ошибка, то прошу пояснить её суть, если не сложно.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2013, 14:27     Ошибка "неверный тип для индекса массива" при работе с двумерным массивом
Посмотрите здесь:

C++ Выдает ошибку "Неверный тип для индекса массива"
Написал класс "Телефонная книга". Но при работе вылетает ошибка. помогите разобраться. C++
Ошибка при работе с графикой. Не распознается библиотека "cstdlib" C++
C++ Ошибка "Попытка чтения в запрещенную память" при работе с файлами
C++ Ошибка с массивом: программа при вводе "ступорится" при нажатии клавиши Enter
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newb_programmer
 Аватар для newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 553
15.10.2013, 14:43     Ошибка "неверный тип для индекса массива" при работе с двумерным массивом #2
MurderKnot, двумерный нельзя так в функцию передавать
вот так можно например
C++
1
int step_right(int a[5][5],int n,int m,int i,int j){
MurderKnot
-98 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 32
15.10.2013, 15:39  [ТС]     Ошибка "неверный тип для индекса массива" при работе с двумерным массивом #3
newb_programmer, но можно же работать с двумерном массивом в функции?
newb_programmer
 Аватар для newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 553
15.10.2013, 16:22     Ошибка "неверный тип для индекса массива" при работе с двумерным массивом #4
MurderKnot, конечно, почему нет?)
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,405
15.10.2013, 16:34     Ошибка "неверный тип для индекса массива" при работе с двумерным массивом #5
MurderKnot, а лучше использовать динамические массивы и передавать в функцию вот так:
C++
1
void foo(int *arr, const int size1, const int size2) { ... }
Добавлено через 19 секунд
И не использовать частные случаи для решения общей задачи
MurderKnot
-98 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 32
15.10.2013, 16:46  [ТС]     Ошибка "неверный тип для индекса массива" при работе с двумерным массивом #6
нашёл способ, если писать
C++
1
int step_right(int **a, int i, int j, int n, int m)
То можно передавать двумерный массив в функцию!

В итоге написал:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int step_right(int **a,int n,int m,int i,int j){
  int flower = 0;
  if ((n<i)&&(m<j-1)){
      flower+=a[n][m]-a[n][m+1];
    }
  else{
      flower+=0;
    }
  return flower;
}
 
int step_right2(int **a, int n, int m, int i, int j){
  int flower = 0;
  if ((n<i)&&(m<j-2)){
      flower+=2*(a[n][m]-a[n][m+2]);
    } 
  else{
      flower+=0;
    }
  return flower;
}
и ошибку больше не выводит
Yandex
Объявления
15.10.2013, 16:46     Ошибка "неверный тип для индекса массива" при работе с двумерным массивом
Ответ Создать тему
Опции темы

Текущее время: 23:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru