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

Alexandre Torres Porres porres at gmail.com
Fri Dec 4 03:28:10 CET 2020


I'm using getbytes and freebytes for now, any disadvantages over alloca?

thanks!

Em qui., 3 de dez. de 2020 às 20:59, David Rush <kumoyuki at gmail.com>
escreveu:

> 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/0761bc4c/attachment.html>


More information about the Pd-dev mailing list