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.