2 dim arry in anderer Datei global definieren



  • Hallo zusammen!

    Ich möchte ein 2 dimmensonales Feld (Feld[40][40]) in einer externen Datei definieren und dann in meinem Hauptprogramm Global definieren. Nun das Problem:

    Ich weiß nicht wie ich ein 2 dim arry von einer Datei in die Andere Bekomme ohne die Daten darin zu verlieren.

    Hoffe das ich das jetzt gut genug beschrieben hab.

    mfg Anfaenger!!



  • also ich würde in der externen Datei den Array ganz normal definieren:

    int array[8][8];
    

    in der anderen Datei würde ich dann einen Pointer machen und den auf den Pointer aus der externen Datei setzen (Arrays sind ja immer Pointer):

    #include "datei1.h"
    int *parray = array;
    

    Ich weiß nicht wie ich ein 2 dim arry von einer Datei in die Andere Bekomme ohne die Daten darin zu verlieren

    wenn du ein Array nur definierst, gibts da eh keinen sinnvollen Inhalt den du verlieren könntest,
    dafür müsstest du den Array erstmal deklarieren

    (oder ich vertausch das selber grad)



  • Also erstens: Ich definiere den array in der externen Datei damit ich im Main prog weniger Quelltext hab.
    Zweitens: Ich habe keine Header Datei ich hab in der externen datei nur um den arry zu definieren für nix anderes. Also verstehe ich nicht wo du die Header her hast.

    Aber ich werds mal so probiern thx



  • der Header soll deine externe Datei sein 😉
    okay der Name ist vielleicht ein bisschen ungünstig gewählt



  • ich habe keine Header Datei ich hab in der externen datei nur um den arry zu definieren für nix anderes.

    Warum nicht einfach array mit extern deklarieren ?
    So etwa:

    /*Externe Datei*/
    int array[8][8];
    
    /*Datei in der das Array auch benutzt werden soll*/
    extern int array[8][8];
    


  • stimmt eigentlich, so sollte das Programm dann auch schneller sein,
    das war mir einfach zu einfach 😃



  • Also ich hab jetzt in meiner externen Datei folgendes:

    [b]int[/b] Spielfeld[43][41];
    

    und in meiner Hauptdatei:

    [b]extern int[/b] Spielfeld[43][41];
    

    und das kommt dabei raus:

    [Linker Fehler] Unresolved external '_Spielfeld' referenced from D:\EIGENE DATEIN\APR\PACMAN\LEVEL_01.OBJ.



  • muss ich da vorher noch was machen (fopen oder so) hab das noch nie gemacht



  • deswegen brauchst du doch die include anweisung die ich gepostet habe,
    sonst weis der Compiler gar nicht das er deine externe Datei auch angucken soll



  • Habs jetzt geschafft mein Fehler war das ich die Variable in der externen Datei nur Lokal deklariert hab Danke für die Hilfe


Anmelden zum Antworten