matrix einlesen funktioniert nicht so richtig!
-
folgendes programm:
#include <stdio.h> #include <conio.h> #include <malloc.h> void MaEinl(float *X, int m, int n); int main(){ int m=0, n=0; float *A; printf("Geben Sie die Größe der m x n Matrix an:\n"); scanf("%d %d", &m, &n); A = (float*)malloc(sizeof(float)* (m * n)); if(A == NULL){ fprintf(stderr,"Konnte keinen Speicherplatz reservieren......\n"); return 1; } MaEinl(A, m, n); free(A); getch(); return 0; } void MaEinl(float *X, int m, int n){ int x=0, y=0, i=0; for(y=0; y < n; y++){ for(x=0; x < m; x++){ printf("A(%d,%d):=", x, y); scanf("%f",(X+i)); printf("%f",*(X+i)); i++; } } }
so läuft das programm durch, und beendet scheinbar korrekt.
wenn ich jedoch das 'printf("%f",*(X+i));' weglasse, beendet das programm mit fehlercode 255. ich habe keine ahnung in welchem zusammenhang das steht, oder was sonst falsch ist.
vielleicht kann hier jemand helfen?CU
-
habe vergessen zu sagen, daß das programm dann beim einlesen des 1. koeffizienten abschmiert...
-
Hi,
keine Sorge, es läuft alles wunschgemäß
MfG
pierre
-
Nachtrag
habe gerade dein Programm mit MS-VC getestet; tatsächlich der Fehler (????)
leere den Puffer, von mir aus mit fflush(stdin);
käuft dann auch mit diesem CompilerMfG
pierre
-
hab' den kram nochmal mit dem gnu compiler übersetzt, und es läuft alles einwandfrei.
ich will es aber ansich auch mit dem microweich compiler lauffähig bekommen.
hat denn keiner ahnung was dem nicht passt?
-
vergessen:
fflush würde ich doch nur sehr ungerne benutzen...