how to change datatype of libpointer

4 Ansichten (letzte 30 Tage)
Kev Chen
Kev Chen am 1 Mär. 2016
Kommentiert: vishal sp am 6 Mai 2022
Hi , I am trying to use Matlab and shared library.
If I have a C function which is like below
void * foo(int n);
It's just like that we get a void type pointer containing n int data , returned from foo .
In C , we can change void type to int or double easily.
But how to change type in Matlab ?
I tried
pointer = calllib(lib,'foo',1000);
pointer.datatype = 'uint16Ptr'; %Changing the 'DataType' property of lib.pointer is not allowed.

Akzeptierte Antwort

Guillaume
Guillaume am 1 Mär. 2016
Bearbeitet: Guillaume am 1 Mär. 2016
setdatatype(pointer, 'uint16Ptr', n); %assuming the pointer points to an array of n uint16
should work.
  2 Kommentare
Kev Chen
Kev Chen am 2 Mär. 2016
Thanks you .
I never thought that...
It works.
vishal sp
vishal sp am 6 Mai 2022
iam getting error for this, Check for missing argument or incorrect argument data type in call to
function 'setdatatype'.
Error in getLineColour (line 14)
setdatatype(image,'uint8Ptr',3);

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Call C from MATLAB finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by