MATLAB Answers

Embedded Coder give uncompilable code using dynamic arrays

5 views (last 30 days)
Marcus Mårdberg
Marcus Mårdberg on 14 Sep 2020
Answered: Ryan Livingston on 25 Sep 2020
Hi,
When generating C++ code an error occurs. Using dynamic arrays (not statically reserved memory) in matlab results in generated code that uses data structures of type array and b_array, where b_array is undefined. Hence, trying to use Embedded Coder with Matlab 2020a might give uncompilable code.
Appreciate any feedback and help on this issue.
Regards,
M

  3 Comments

Gaurav Garg
Gaurav Garg on 18 Sep 2020
Hey Marcus,
Can you share the piece of code resulting in error during the compilation for MATLAB Coder?
Glenn
Glenn on 22 Sep 2020
I'm seeing the same problem. I've used a 'sed' script to simply change the 'b_array' references to 'array', and the code compiles and appears to work:
sed -i -e "s/b_array/array/g" *.{h,cpp}
Sumit Ghosh
Sumit Ghosh on 24 Sep 2020
Hi Glenn,
Can you help us reproduce the issue so that we can fix it and/or offer a workaround.
Thanks,
Sumit.

Sign in to comment.

Answers (1)

Ryan Livingston
Ryan Livingston on 25 Sep 2020
This is a bug and has been reported to our development team. In addition to the postprocessing workaround suggested by Glenn, you can disable coder::array if you're OK using emxArrays instead:
cfg = coder.config('lib');
cfg.DynamicMemoryAllocationInterface = 'C';
codegen f -args 1 -lang:c++ -config cfg -report

  0 Comments

Sign in to comment.

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!