1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

c-prog / struc array gibt nur müll

Discussion in 'Programmieren' started by B-Brot, Jul 13, 2008.

Thread Status:
Not open for further replies.
  1. B-Brot

    B-Brot Byte

    Also ich habe ein globales array mit struct deklariert und möchte in einer funktion erst alle werte auf "1" setzen und in der nächsten funktion alle werte ausgeben... nun bin ich aber verwirrt... in der 2. funktion wird nur "mist" ausgegeben und nicht die deklarierten 1en zum beispiel... schaut euch das mal bitte an...
    :bitte::bet:
    hoffe es ist verständlich (natürlich auch stark gekürzt)...
    Es handelt sich um C- programmierung eines debilen anfängers ohne jeglichem talent ;-)

    Als erstes
    PHP:
    #include <conio.h>
    #include <stdio.h>
    #include <STDLIB.H>
    #include <time.h>
    /*--------------------------------*/
    struct all 
    {
        
    int array[3][3];
    };
    Die Mainfunktion
    PHP:
    void main()
    {
        
    int breite 4laenge 4;
        
    printf("MOIN\n\n");
        
    arraydek(); //array werte setzen
        
    aufbau(breitelaenge); //array ausgeben
        
    getchar();
    }
    funktion array dek
    PHP:
    void arraydek(void)
    {
        
    struct all s;
        
    int ab;
    //array zuruecksetzen

        
    for (03a++)
        {
            for (
    03b++)
            {
                
    s.array[a][b] = 1;
            }
    }
    }
    Aufbau und laengsfunktion die laengsfunktion ist die einzige ausgabe des array... die andern funktionen sind wie sie sind ok und funzzen... geben n bissel ascII code aus damit ne schicke tabelle entsteht...
    PHP:
    void aufbau(int breiteint laenge)
    {
        
    int h 0;
        
    oberzeile(breite);
        
        for (
    0laenge-2h++)
        {
            
    laengs(breiteh);
            
    verbindung(breite);
        }
        
    laengs(breiteh);
        
    unterzeile(breite);
    }
    void laengs(int breiteint h)
    {
        
    int lou 186b;
        
    struct all s;
            for (
    03b++)
            {
                
    printf("%c"lou);
                
    printf("%i",s.array[h][b]); /* an dieser stelle soll eigentlich ne 1 aber stattdesssen kommt alles von 187 bis 2********** :-D */
            
    }
        
    printf("%c "lou);
        
    printf("\n");
    }
    ich danke für jeden HIT!
     
  2. Michi0815

    Michi0815 Guest

    wie wäre es wenn du s global machst? so wie du es jetzt schreibst haben arraydek und laengs jeweils eigene, lokale und unabhängige strukturen, die zufällig den selben namen haben...
     
  3. B-Brot

    B-Brot Byte

    ?dann hab ich die stukturen nicht ganz verstanden...
    kannst du mir ein beispiel schreiben oder n link geben... :-) bitte
    also heißt das, dass in der funktion laengs die struct s leer ist...
     
  4. Michi0815

    Michi0815 Guest

    deine struct ist eine datenstruktur, in der halt 9 zahlen von typ int stehen. wenn du in der funktion f1 z.b ein "int x" hast und in funktion f2 auch ein "int x" dann sind das 2 getrennte und unabhängige variablen. bei structs ist das genau so.

    du musst die variable s global machen, dann funktioniert es:
    Code:
    #include <conio.h>
    #include <stdio.h>
    #include <STDLIB.H>
    #include <time.h>
    /*--------------------------------*/
    struct all 
    {
        int array[3][3];
    };  
    
    [b]struct all s;[/b]
    
    void arraydek(void)
    {
        int a, b;
    //array zuruecksetzen
    
        for (a = 0; a < 3; a++)
        {
            for (b = 0; b < 3; b++)
            {
                s.array[a][b] = 1;
            }
        }
    } 
    
    void laengs(int breite, int h)
    {
        int lou = 186, b;
            for (b = 0; b < 3; b++)
            {
                printf("%c", lou);
                printf("%i",s.array[h][b]); /* an dieser stelle soll eigentlich ne 1 aber stattdesssen kommt alles von 187 bis 2********** :-D */
            }
        printf("%c ", lou);
        printf("\n");
    }  
    
    void aufbau(int breite, int laenge)
    {
        int h = 0;
    //    oberzeile(breite);
        
        for (h = 0; h < laenge-2; h++)
        {
            laengs(breite, h);
    //        verbindung(breite);
        }
        laengs(breite, h);
    //    unterzeile(breite);
    }
    
    
    int main()
    {
        int breite = 4, laenge = 4;
        printf("MOIN\n\n");
        arraydek(); //array werte setzen
        aufbau(breite, laenge); //array ausgeben
        getchar();
    } 
    
     
  5. B-Brot

    B-Brot Byte

    danke leute ich übergebe die variable s einfach an die unterfunktionen... blöde sache... darauf bin ich garnicht gekommen... und dabei hätte ich das wissen müssen.. :D

    thx@all
     
Thread Status:
Not open for further replies.

Share This Page