ошибка при вызове многомерного массива в cpp

#include
using namespace std;

void print_matrix(int* a, int row, int column)
{
    int i, j;
    for(i=0;i> a[i][j];
        }
    }
    int* r = &a[0][0];
    print_matrix(r, row, column);
    **print_matrix(a, row, column);//error**

    system("pause");
    return 0;
}                                             

the error is -- cannot convert int (*)[((unsigned int)((int)column))]' toint*' for argument 1' tovoid print_matrix(int*, int, int)' Why do i get the error, as i think the base address " a = &a[0][0] ", So i can call directly instead of having declaring a new int*r ?

3
nl ja de
int a [row] [column]; строка/столбец не const, это недопустимо в C ++
добавлено автор billz, источник

1 ответы

В вашем коде есть несколько ошибок.

Чтобы понять, как указатели относятся к многомерным массивам, обратитесь к Как использовать массивы на C ++? , особенно многомерные массивы и массивы указателей . Это поможет вам понять, что я изменил в вашем коде, чтобы сделать его действительным.

#include

using namespace std;

template 
void print_matrix(int (*a)[n], int row, int column)
{
    int i, j;
    for(i=0;i> a[i][j];
        }
    }
    print_matrix(a, row, column); 
}                              

В дополнение к этому, поскольку вы используете C ++, вам следует избегать таких статических массивов и предпочитайте std :: vector (или Boost matrix !).

0
добавлено
pro.cxx
pro.cxx
3 049 участник(ов)

C/C++ chat 0. Простые вопросы, лабы и о IDE — в чат новичков @supapro 1. Не хамим, не переходим на личности, не вбрасываем утверждения без доказательств 2. No Ads, offtop, flood Объявления о вакансиях и евенты - в лс @AlexFails https://t.me/ProCxx/259155

supapro.cxx
supapro.cxx
1 925 участник(ов)

Чат для тех, кто немного знает C++, простые вопросы по реализации, синтаксису и ide – сюда, а для другого есть: /Главный чат по серьезным вопросам — @ProCxx /Чат по обсуждению всего — @fludpac

C++ Russia
C++ Russia
384 участник(ов)

Сообщество разработчиков C++ в Telegram.

cxx.Дискуссионная
cxx.Дискуссионная
298 участник(ов)

это не двач, общайтесь вежливо; разговор на почти любые темы; Не согласны с баном? В лс @AlexFails, @ivario

C++ для маленьких и тупых
C++ для маленьких и тупых
105 участник(ов)

Лоу левел (по среднему IQ участников) чатик ExtremeCode @extremecode Флудилка @extremecode_rest