Du definierst deinen Verbund 'structarray' in der main-Funktion, willst aber Elemente davon an Funktionen übergeben, die vorher definiert wurden, also ist der Datentyp dort noch vollkommen unbekannt.
Also ganz einfach den Verbund global, über den Funktionen definieren.
Ich mache so etwas immer mit einem typedef und das gehört in ein h-File.
Oder für ein kleines Beispiel einfach dort hin, wo du dein Anzahl-Define machen würdest.
PHP-Code:
#define DATA_COUNT 12
typedef struct {
int x;
int y;
} Data_Struct, *Data_StructPt;
int doSomething(Data_StructPt data)
{
data[3].x = 47;
data[3].y = 11;
#define ANZAHL 5 /*Anzahl der Strukturen*/
typedef struct {
int x;
int y;
}structarray;
void funktion1(structarray s[], int z1, int z2);
void funktion2(int m, int n);
void funktion1(structarray s[], int z1, int z2) {
int i;
for(i=0; i<ANZAHL; i++) {
s[i].x = z1+i;
s[i].y = z2+i;
funktion2(s[i].x, s[i].y);
}
}
void funktion2(int m, int n) {
printf("%d\t%d\n", m, n);
}
int main(void) {
structarray strukturen[ANZAHL];
int zahl1 = 100;
int zahl2 = 200;
funktion1(strukturen, zahl1, zahl2);
return EXIT_SUCCESS;
}
0 errors, 0 warnings Vielen Dank liebe Leute.
Stimmt, ein struct alleine kann ich ja global definieren, und das interessiert kein Schwein weil es im Grunde nichts bewirkt; und die struct-VARIABLEN dann lokal und an andere Funktinen übergeben etc.
*zing*