Pointer auf die Adresse in einer int/double-Variable zeigen lassen
-
Hallo c-Community,
Also ich schreibe derzeit an einer c-Funktion die mit MatLab aufgerufen werden kann. Ziel ist es ein Bild aus einem Speicherbereich zu lesen.
Dabei übernimmt MatLab die Aufgabe den Pointer, Bildtiefe, Breite und Höhe des Speichers zu bestimmen.
Ich soll nun in C den Speicher auslesen. Der Pointer wird dabei in einer int/double-Variable übergeben, da MatLab nur eingeschränkt mit Pointern umgehen kann.
Das Image liegt in uint8 oder uint16 (je nach Kamera-Einstellung vor). Welchen Zeigertypen verwende ich am Besten und wie übergebe ich dem dann den Wert der int/double-Variable als Zieladresse?Hoffe jemand kann mir hier helfen.
Vielen Dank
mirrowwinger
-
Das hier scheint zu funktionieren:
PPointerToMemory = (int*)(int)*tempDouble;
[Edit]
tempDouble ist ein Pointer auf den eigentlichen übergebenen Wert, der ja die Adresse darstellt.
[/Edit]
-
1. Was ist eine int/double Variable? Entweder hat eine Variable den Typ int oder den Typ double. Was davon trifft bei dir zu? Wenn ich dich richtig verstanden habe, geht es doch um einen Zeiger auf Bilddaten, richtig? Dann sollte double eigentlich keine Rolle spielen. Insofern ist deine Variable schlecht benannt (tempDouble, wo es doch wahrscheinlich ein int ist).
2. Ist tempDouble ein Zeiger oder nicht? Ich würde ja vermuten, dass es kein Zeiger ist, aber einer sein soll (das Theater kenne ich mit LabView, mit MatLab ist es eventuell genau derselbe Quatsch
). Falls ich richtig liege, kannst du es einfach so machen:
PPointerToMemory = (int*)tempDouble;
3. Zeig mal mehr Code, so rät man nur in der Gegend rum.