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 Compiler

    MfG
    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...


Anmelden zum Antworten