I get an Access violation reading location when using mxCreateCharMatrixFromStrings
Show older comments
I am using mxCreateCharMatrixFromStrings in a C++ console app. I have read in the 'string' from a .mat file into a char *cData[10] using mxArrayToString(). I can see the string in cData[0] and it is what I expected. I take that variable and then call the following in C++:
mxArray *pMatr = nullptr;
pMatr = mxCreateCharaMatrixFromStrings(345, (const char**)cData[0]); <-- this line is where I get the access violation error!
my goal is to have an pointer to an 1X344 mwArray to pass into a matlab generated library.
I am using MatLab R2014 as the matlab generated library needed to be 32 bit.
Thanks,
Accepted Answer
More Answers (1)
Mohan Feng
on 11 Dec 2018
0 votes
It seems that in your code, cData[0] is of type char*, but you convert it into type char**, which may cause a segmentation fault.
2 Comments
Edwardo Medina
on 11 Dec 2018
James Tursa
on 12 Dec 2018
I don't believe you. Passing in cData[0] as the 2nd argument couldn't possibly have worked, since that address points to a string of characters and is not the same as cData all by itself.
Categories
Find more on C Shared Library Integration in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!