Ich denke, ich bin in der Nähe der Marke zu verstehen, das Konzept der Zeiger, aber ich habe ein Problem, das ich nicht auf eigene Faust lösen kann ... Ich versuche zu ändern Struktur durch eine Funktion:Ändern Array/Struktur global funktioniert nicht
struct structure
{
double lower[2];
};
void function(struct structure *structure1)
{
structure1->lower[0] = 1;
structure1->lower[1] = 2;
}
int main()
{
double a[2] = {0, 0};
struct structure structure1 = { {a[0], a[1]} };
function(&structure1);
printf("%f, %f\n", a[0], a[1]);
Wenn ich versuche a
jetzt zu drucken, die Werte bleiben gleich - er druckt 0, 0
. Warum hat sich das Array nicht global geändert?
Warum denkst du sollte es? C funktioniert nicht wie eine Tabelle. –
Setzen Sie die 'double' Werte auf' integers'? Versuchen Sie, 1.0, 2.0 und 0.0 zu verwenden, wo Sie die Werte festlegen. – mpez0
Wenn ich innerhalb der Funktion drucke, zeigt es die Werte an, die ich haben möchte. Das kann nicht das Problem sein ... – klippklar