Mehrdimensionales Array global/extern deklarieren?



  • Eine Datei main.c:

    #define CHARS 100
    char array[10][CHARS];
    
    int main()
    {
        int zeile;
        ... [array wird mit Daten befüllt] ...
        /* dies gibt mir nun den Text wie gewünscht aus */
        for (zeile=0; zeile <= 9; zeile++)
            printf("zeile <%d> text <%s>\n", zeile, array[zeile]);
        return 0;
    }
    

    Diese Funktion funktioniert einwandfrei. Jede Zeile des Arrays ist gefüllt.

    Angenommen, ich habe nun eine andere Datei, welche die Daten des Arrays benötigt:
    Eine Datei blubber.c:

    #define CHARS 100
    extern char array[10][CHARS];
    void blub()
    {
        int zeile;
        for(zeile=0; zeile <= 9; zeile++)
            printf("zeile <%d> text <%s>\n", zeile, array[zeile]);
    }
    

    Und hier gibt mir das printf aus, dass lediglich der Wert für die Zeile 0 (also erste Zeile) mit Daten gefüllt ist. Ich brauch aber alle Zeilen.

    Was tun?

    Danke im voraus für Eure Hilfe.



  • ^^müsste eigentlich so gehen. aber das ist doch bestimmt nicht der originalcode, der rumzickt. oder?
    🙂



  • Naja... um den Originalcode zu lesen, muss man spaß verstehen können. 6000 Zeilen in einer einzigen Funktion. 😡

    Ich hab es jetzt durch eine #include "stru.h" gelöst, wo ich eine Struktur für definiert habe. C is sowas von 😮



  • Poste mal bitte das Struktogramm zu der Funktion 😉



  • der Witz war gut 😃

    Der Source is von einer US-Uni (Washington) und unter der GPL freigegeben. Als wär das nicht genug, haben schon einige Schülerchen in den Projekten rumgebastelt. Weder ein CVS/ SVN ist vorhanden. An der Dokumentation kann es auch nicht liegen - es gibt nämlich schlichtweg keine.

    Nun funktioniert das Proggi nicht mehr, und da ich etwas fortgeschritten bin, kann ich das jetzt "anpassen".

    Aber wie gesagt, das Problem habe ich durch eine in einer ext. Datei erzeugten Struktur gelöst.

    Vielen Dank!

    (Wer interesse an dem Source hat: http://erl.wustl.edu/research/dicom/)


Anmelden zum Antworten