Ecco il mio codice:
codice:
#include <stdio.h>
#include <stdlib.h>
#define size 5
#define size2 2
int *arr(int **pippo){
int i, j;
int *poi=malloc(size*sizeof(int));
for(i=0;i<size;i++){
poi[i]=0;
}
for(i=0;i<size;i++){
for(j=0;j<size2;j++){
poi[i]+=pippo[i][j]+1;
}
}
return poi;
}
int main(){
int pippo[size][size2];
int i, j, count=1;
int *v;
for(i=0;i<size;i++){
for(j=0;j<size2;j++){
pippo[i][j]=count;
count++;
}
}
v=arr(pippo);
for(i=0;i<size;i++){
printf("\n%d", v[i]);
}
printf("\n");
return 0;
}
il compilatore mi da:
mem.c: In function ‘main’:
mem.c:36:2: warning: passing argument 1 of ‘arr’ from incompatible pointer type [enabled by default]
mem.c:7:6: note: expected ‘int **’ but argument is of type ‘int (*)[2]’
Non riesco a capire come devo fare a risolvere. Se al posto di una matrice passo un semplice array il problema non c'è, come devo fare però con una matrice?