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 Startup and Shutdown 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!