int m[rows][colums]; m - это указатель на int int** array; array - это указатель на указатель на int структуры разные в памяти, вот и получается бред. Вариантов много, но всегда надо передавать именно то, что принимает функция. Например, динамически создавать массив (вариант с int**) или передавать указатель на массив фиксированного размера (вариант с [][]). Или создавать и передавать одномерный массив размером m*n, а к i,j-тому элементу обращаться как ar[i*m+j].
Точнее, m — это int[rows][colums], но m можно развалить до указателя на int[colums]: *int[colums]
Капитан Гугл
Искусственный Интеллект
(146215)
Совершенно верно, но этот int[columns] состоит из int-ов, и m, в конечном результате, указывает на начало этого массива, я это имел в виду. Не хотел много писать.
#include"input.h"
using namespace std;
int main(){
int rows=5,colums=5;
int m[rows][colums];
init(m,rows,colums);
return 0;
}
//////////////////input///////////////////////////////
#include
#include "input.h"
using namespace std;
void init(int** array, int rows,int colums){
int i,j;
for(i=0;i<rows;i++){
for(j=0;j<colums;j++){
cout<<array[i][j];}
}
}
/////////хедер//////////////////
void init(int *array, int rows,int colums);
Подскажите как сделать чтобы оно работало, в гугле решения не смог найти, чтобы с хедер файлом было.