> malloc(), on the other hand, actually uses the system memory
allocator which can take arbitrarily long and might even block!
> Christof
On Thu, 3 Dec 2020 at 23:15, Alexandre Torres Porres <porres@gmail.com> wrote:
Hi, when compiling ELSE for camomille in windows, me and Esteban are getting some errors. Offending pieces of code are when trying to do things like
t_atom at[ac];
If you want to maintain straight C compiler compatibility
t_atom* at = (t_atom*)malloc(ac * sizeof(t_atom));
but you have to remember to free(at), &cet. You can avoid the free() if you HAVE_ALLOCA with
t_atom* at = (t_atom*)alloca(ac * sizeof(t_atom));
if you want to do it the C++ way without a std::vector<t_atom>
t_atom* at = new t_atom[ac];
but again you will have to
delete at;
For my own externals, I write them all in C++ and use STL. Making the change from the C-world allocation of PD to the C++ world is not so hard, but it does involve a tiny bit of trickery which I only justify through expediency.
- d
_______________________________________________ Pd-dev mailing list Pd-dev@lists.iem.at https://lists.puredata.info/listinfo/pd-dev