"Robert Haas" <robertmh...@gmail.com> writes: > Just out of curiosity, does C89, or whatever standard we follow, allow this? > > int > somefunc(int x) > { > int foo[x]; > /* use foo[] for scratch space */ > }
It's not in C89 but look up "alloca". We don't use it anywhere in postgres currently so it's kind of unlikely we would start now. I think C99 does allow what you typed, and I think gcc has an extension to allow it too. > Obviously this is a bad plan if x can be a big number because you > might crash your stack, but suppose we know that's not an issue? It > seems a shame to have to do palloc/pfree in a situation like this. palloc really isn't that expensive, unless you're allocating tons of tiny objects or you're in a tight loop it's not worth worrying about. -- Gregory Stark EnterpriseDB http://www.enterprisedb.com Ask me about EnterpriseDB's Slony Replication support! -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers