_Achille ha scritto:
Che compilatore usi? Dovrebbe essere meno vago…
Comunque a me sembra monodimensionale l’array. L’errore però è bidimensionale…
Manca un cast. Un array è implicitamente convertibile in puntatore ma non puntatore a puntatore. Se nella funzione hai l’interesse di utilizzare due volte l’operatore [] allora nella chiamata devi convertirlo a int **
sono stato io a scriverlo per capire a cosa è dovuto il problema, il problema.
Se vuoi qui c'è il programma dove mi è comparso l'errore (C++):
#include <iostream>
using namespace std;
#define d 5
#define c 5
unsigned int *func (unsigned int **k, int n, int m)
{
unsigned int *h= new unsigned int[d][c];
for (int j=0; j<5; j++){
for (int i=0; i<5; i++)
{
h[i][j]=k[i][j];
}
}
return h;
}
int main ()
{
unsigned int a[5][5]={{4,3,2,1,2}, {3,2,4,2,1}, {43,73,2,6,4},{5,6,3,1,6},{6,43,1,4,6}};
unsigned int *array= **func(a);
for (int j = 0; j <5; j++)
{
for (int i = 0; i <5 ; i++)
{
cout <<array[i][j]<< " ";
}
}
}