array problem!



  • folgender code:

    #include <stdio.h>
    #include <conio.h>
    
    int main(){
    
        int m=0, n=0;
    
        scanf("%d %d", &m, &n);
    
        double m_1 [m] [n];
    
        getch();
        return 0;
    }
    

    jetzt mecker der compiler (visual studio .net 7) an der arrayerstellung:
    konstanter ausdruck erwartet, und reservierung eines arrays der konstanten größe 0 nicht möglich.

    andere compiler haben das gefressen, was mach ich falsch?



    Kein MFC-Problem
    2.

    andere compiler haben das gefressen, was mach ich falsch?

    Sicherlich keine C-Compiler!



  • Hallo,

    der Compiler erwartet einen konstanten Ausdruck. Also sowas wie 'const int m = 1; const int n = 2;'

    Was du haben willst ist sowas wie ein dynamisches array, da kannst du mal im C oder C++ Forum fragen.

    Für 1-dimensionale Arrays kannst du folgendes machen:

    //m ist von der console bereits eingelesen
    double* m_l;
    m_l = (double*)malloc(sizeof(double)*m);
    //Element-Zugriff wie beim array: m_l[i] = ...
    
    //Programm-Ende
    free(m_l);
    

    Mehr-Dimensionale Felder gehen so natürlich auch, man muß dann eben ein bischen mit den indizees rechnen.

    Achja und Größe 0 geht nicht, weil 0 nichts ist 😉 . Du brauchst mindestens 1 Element. Und nicht vergessen: bei n Elementen erfolgt der Zugriff mit 0...(n-1).

    Gruß mathi

    [ Dieser Beitrag wurde am 12.12.2002 um 12:34 Uhr von mathi editiert. ]



  • Hi ...

    Weise erst einmal einen Wert größer
    0 zu, also
    int m=1 , n=1;

    und weise dann erst diesen neue Werte zu.

    bis dann
    klaus


Anmelden zum Antworten