Arrays in Structs, an eine Funktion übergeben
-
Hallo erstmal,
Ich habe einen struct mit in etwa dieser Struktur erzeugt:
struct gas
{
float IonTemp[55];
float n[55];
etc...
}
danach habe ich Arrays dieses structs erzeugtgas z[4];
ich habe jetzt eine Funktion, welche intern beliebig auf
z[y].IonTemp[i] (i= 0..54), (y = 0..3) zugreifen soll.
Wie muß ich den struct an die Funktion übergeben, um auch in der Funktion,
z[y].IonTemp[i] beliebig ansprechen zu können?zum näheren Verständis:
Function(z[].IonTemp[], z[].IonTemp[], a, b)
{
hier muß jetzt je nach angesprochenem z[] und IonTemp[], der jeweilige Wert
verfügbar sein!
}
-
Meinst du sowas:
[code]
void bremsen (float altestemp[55])
{
altestemp[0]=altestemp[0]-5;
...
return;
}int main()
{
struct gas
{
float temp[55];
...
};
gas auto;
bremsen(auto.temp);
return 0;
}
[code]
-
Hi,
das ist ganz einfach. Du übergibst einen Zeiger auf Deine Struktur.
z.Bsp.:
void foo(struct gas *wert){ wert[1].n[40]=5.7; }
aus der main kannst Du dann das ganze einfach mit:
struct gas z[4]; foo(z);
aufrufen.
grüße Con@n
-
sicher dass das so klappt?
müsste es nicht eher so heisen:
void foo(gas *wert) { wert->n[40] = 5.7; }
und dann in der main
gas z[4]; foo(z[1]);
auserdem muss vor "struct gas" noch typedef.
also so:typedef struct gas ...
-
gibbets2000 schrieb:
sicher dass das so klappt?
Ja. Das klappt!
gibbets2000 schrieb:
...
und dann in der maingas z[4]; foo(z[1]);
Ne. In main() muss es dann so aussehen:
foo(&z[1]);
gibbets2000 schrieb:
auserdem muss vor "struct gas" noch typedef.
also so:typedef struct gas ...
Warum sollte hier ein typedef hinkommen?!?