Variablen aus Funktionen definieren...
-
Hallo C-Experten,
ich weiss wieder mal nicht weiter!
Und zwar habe ich das Problem, dass ich ein Programm folgender Struktur habe (Skizze):
#include...... #define N 2 double x[N], y[N], z[N]; int init() { x[0]=........ return 0; } int main() { init(); ... ... return 0; }
und die global definierten und in der funktion belegten Werte nachher, wenn ich sie aus main() abrufen will nicht belegt sind...Was habe ich da falsch gemacht?
Nach allem was ich in Büchern und im Netz gelesen habe müsste das eigentlich funktionieren...Über antworten wäre ich sehr dankbar
Es grüßt
Gisbert
-
Was habe ich da falsch gemacht?
Nichts was mir auffällt.
-
Also eine moegliche Fehlerquelle ist noch, dass du etwas bei der Belegung der Variablen was falsch gemacht hast (was man in deiner 'Skizze' nicht sehen kann).
Als Gegenbeispiel hab ich:
#include <stdio.h> #define N 2 double x[N], y[N], z[N]; int init() { x[0] = 0.1; x[1] = 15.7; y[0] = -1.1; y[1] = 2.0; z[0] = 3.9; z[1] = 6.2; return 0; } int main() { init(); printf( "%4.1f | %4.1f\n%4.1f | %4.1f\n%4.1f | %4.1f\n", x[0], x[1], y[0], y[1], z[0], z[1] ); return 0; }
und wenn ich es ausführe bekomm ich:
0.1 | 15.7 -1.1 | 2.0 3.9 | 6.2
also prinzipell müsste dein Code funktionieren.
-
erstmal Vielen Dank für die Antworten
@TLEP:
habe jetzt mal Deine Version ausprobiert, diese ist soweit wie meine, bis auf die Ausgabeformatierung des printf:Du hattest:
printf( "%4.1f | %4.1f\n%4.1f | %4.1f\n%4.1f | %4.1f\n",
x[0], x[1], y[0], y[1], z[0], z[1] );Ich hatte sowas wie:
printf("%d", x[0]);
und wenn ich Deine printf-Zeile in mein Programm übernehme funktioniert es...aber wieso das? x[N] ist doch ein double-Array....?
Viele Grüße
Gisbert
-
%d steht für dezimal also integer.
-
und die global definierten und in der funktion belegten Werte nachher, wenn ich sie aus main() abrufen will nicht belegt sind
Sie waren also doch belegt.