Char array init



  • Hi,

    ich versuchen ein char array direkt einer stuktur zuzuweisen. Leider schlägt es fehl.

    // Headerauszug
    typedef struct Id
    {
    	unsigned char b[6];
    
    } Id;
    
    typedef struct
    {
    	Id	netId;
    	unsigned short port;
    } Addr;
    
    // Mainauszug
    
    Addr address;
    

    Wie kann ich das Char array direkt mit Werten initialisieren?

    address.netId.b[0] = 1;
    //...
    address.netId.b[5] = 1;
    

    Geht das nicht mit einem Einzeiler?



  • Willst du wirklich C++ programmieren oder bist du in's falsche Forum gelangt?



  • beava schrieb:

    Geht das nicht mit einem Einzeiler?

    Mit boost.assign ginge es.
    Mit C++0x gehts auch ohne Boost. Mit C++ könnte man sowas wie Konstruktoren verwenden.

    Deine typedef struct XY-Geschichte sieht aber arg nach C aus, und da gehts wohl nicht.



  • beava schrieb:

    ich versuchen ein char array direkt einer stuktur zuzuweisen. Leider schlägt es fehl.

    Mit memcpy kann man so etwas kopieren, wenn die Größen übereinstimmen.

    beava schrieb:

    Wie kann ich das Char array direkt mit Werten initialisieren?

    Vielleicht so:

    Id i = {1, 2, 3, 4, 5, 6};
    

Anmelden zum Antworten