[PD-dev] how to dinamically allocate t_atom & t_float size?

David Rush kumoyuki at gmail.com
Fri Dec 4 00:58:55 CET 2020


On Thu, 3 Dec 2020 at 23:15, Alexandre Torres Porres <porres at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-dev/attachments/20201203/3eeef684/attachment.html>


More information about the Pd-dev mailing list