pointer mit sockets
-
Hallo,
ich hab folgendes Problem.
ich möchte ein Bildes von der Grabberkarte einlesen und dann mit sockets an den empfänger senden..
zuerst möcht ich die Adresse des Speicherbereichs senden.
aber das ist hier mal egal.Meine Frage???
Warum bekomm ich beim sender ein falschen ausgabewert?????
Warum ist der Wert von "bild" verschieden von wert zu "showbild"
und was muss ich ändern dass ich bei "bild" den Wert von"showbild" bekommedanke Oli
//Grabber headerdatei: .. // Returns the last grabbed image. May only be called, if the grabber was initialized in the // corresponding mode. // The image is located in driver memory and valid until the next call to 'grab()'. IhImage16 getImage16 (); ... //Sender IhImage16 bild; ... bild=Grabber1->getImage16(); write(create_socket,&bild,4); printf ("bild: %d\n",(int)bild[0]); /hier falsche ausgabe wert!!! ... //Empfänger: int *image; read(new_socket,&image,4); printf ("showbild: %d\n",(int)image[0]); //hier richtiger wert
Ausgabe:
bild: -1230708736
showbild: -421720064
-
Dein Fehler liegt vermutlich nicht in den Sockets, sondern in der (merkwürdigen) Pointer/Integer-Umsetzung:
IhImage16 bild; ... printf ("bild: %d\n",(int)bild[0]);
bild ist vom Typ IhImage16, image ist jedoch vom Typ Zeiger auf Integer.
Zeigt bild auf eine Struktur, die mit einem Integer anfängt, oder ist bild selbst eine Struktur, die mit einem Zeiger auf Integer anfängt?Martin