| #ifndef _NGX_ARRAY_H_INCLUDED_ | 
 | #define _NGX_ARRAY_H_INCLUDED_ | 
 |  | 
 |  | 
 | #include <ngx_config.h> | 
 | #include <ngx_core.h> | 
 |  | 
 |  | 
 | struct ngx_array_s { | 
 |     void       *elts; | 
 |     int         nelts; | 
 |     size_t      size; | 
 |     int         nalloc; | 
 |     ngx_pool_t *pool; | 
 | }; | 
 |  | 
 |  | 
 | ngx_array_t *ngx_create_array(ngx_pool_t *p, int n, size_t size); | 
 | void ngx_destroy_array(ngx_array_t *a); | 
 | void *ngx_push_array(ngx_array_t *a); | 
 |  | 
 |  | 
 | #define ngx_init_array(a, p, n, s, rc)                                       \ | 
 |     ngx_test_null(a.elts, ngx_palloc(p, n * s), rc);                         \ | 
 |     a.nelts = 0; a.size = s; a.nalloc = n; a.pool = p; | 
 |  | 
 |  | 
 | #endif /* _NGX_ARRAY_H_INCLUDED_ */ |