What is the best way to reallocate memory for char array?

Maxim Dounin mdounin at mdounin.ru
Mon Nov 17 14:22:25 UTC 2014


Hello!

On Mon, Nov 17, 2014 at 09:09:34AM -0500, kay wrote:

> For example I've allocated memory for char *str:
> 
> str = ngx_pnalloc(r->pool, len1);
> 
> Then I've added some data to "str":
> 
> ngx_sprintf(str, "abc");
> 
> How should I reallocate this memory? Should I use:
> 
> str = ngx_pnalloc(r->pool, len2);
> 
> ? And I would like to keep the str's "abc" data as well.

Best strategy is to allocate len1 + len2 from the start.  E.g., 
you may try looking into autoindex module: it calculates size of a 
buffer it will need, and then allocates the buffer.

-- 
Maxim Dounin
http://nginx.org/



More information about the nginx mailing list