Tag zusammen,
versuche mich gerade in C reinzuarbeiten, doch finde bei folgendem Programm den Fehler nicht.
Bei der Kompilierung erscheint folgendes:
gcc test.c -o test_prog
In file included from test.c:1:
feld.h:21: error: ‘save_field’ declared as function returning an array
feld.h: In function ‘save_field’:
feld.h:23: warning: assignment from incompatible pointer type
feld.h:26: warning: assignment makes pointer from integer without a cast
feld.h:28: warning: passing argument 2 of ‘copy_field’ from incompatible pointer type
feld.h:12: note: expected ‘int **’ but argument is of type ‘int * (**)[3]’
feld.h:29: warning: return makes integer from pointer without a cast
Könnt ihr mir sagen, was ich an de m Abschnitt oben abändern muss?
versuche mich gerade in C reinzuarbeiten, doch finde bei folgendem Programm den Fehler nicht.
C:
typedef int * FIELD[3];
void copy_field(FIELD src,FIELD target) {
int i;
for(i=0; i<9; i++) {
target[i/3][i%3]=src[i/3][i%3];
}
}
FIELD save_field(FIELD src) {
FIELD **target;
target = (int *) malloc(3*sizeof(int *));
int i;
for(i=0; i<3; i++) {
target[i]= (int) malloc(3*sizeof(int));
}
copy_field(src,target);
return target;
}
Bei der Kompilierung erscheint folgendes:
gcc test.c -o test_prog
In file included from test.c:1:
feld.h:21: error: ‘save_field’ declared as function returning an array
feld.h: In function ‘save_field’:
feld.h:23: warning: assignment from incompatible pointer type
feld.h:26: warning: assignment makes pointer from integer without a cast
feld.h:28: warning: passing argument 2 of ‘copy_field’ from incompatible pointer type
feld.h:12: note: expected ‘int **’ but argument is of type ‘int * (**)[3]’
feld.h:29: warning: return makes integer from pointer without a cast
Könnt ihr mir sagen, was ich an de m Abschnitt oben abändern muss?