Strukturen Frage



  • Hallo an allen ,ich habe folende Frage:

    Ich habe ein Bilde mit einer Struktur definiert als

    [cpp]struct Image
    {
    //# of Rows in Image = dx
    int Rows;
    // # of columns in image =dy
    int Cols;
    // Pointer to image data
    unsigned char *Data;
    //type of image
    unsigned char Type;
    };
    und habe ich in einer Funktion zwei Zeiger auf die Struktur definiert *In und *Out
    wobei *In ist das Eingangsbild und *Out ist das Ausgangsbild(Ergebnis).
    In der Funktion wll ich setzen dass beide Bilder ( *in als auch *out)
    gleich gross sind !Ich habe folgendes geschrieben :

    Out->Rows=In->Rows;
    Out->Cols=In->Cols;
    Out->Data=In->Data;

    das ist so da ich das *In Bild bearbeite und das Ergebnis in Out speichere!
    Kann mir jemand sagen ob ds richtig ist oder falsch oder muss ich das mit memcpy() oder memmove() und wenn ja wie??
    Danke fuer ihre Antworten
    kilomat



  • Der Operator= kopiert den Wert der Variable. Bei Pointern eben den Pointer-Wert und nicht den Speicher auf den der Pointer zeigt!

    Wenn du den Speicher kopieren willst, auf den gezeigt wird, kannst du das mit man: memcpy(3) oder man: memmove(3) machen.

    btw. benutz bitte bessere Topics. Nicht nur, dass "Struktur Frage" nicht viel aussagt, deine Frage hat ja noch nicht einmal etwas wirklich mit strukturen zu tun.


Anmelden zum Antworten