?? array-sample.c
字號:
/** * apr tutorial sample code * http://dev.ariel-networks.com/apr/ */#ifdef HAVE_CONFIG_H#include <config.h>#endif#include <stdio.h>#include <stdlib.h>#include <assert.h>#include <apr_general.h>#include <apr_tables.h>#include <apr_strings.h>/* apr_array's initial size. * because apr_array is a dynamic array, the initial size is not a max size of the array. */#define ARRAY_INIT_SZ 32static void append_items_to_array(apr_array_header_t *arr, apr_pool_t *mp){ *(const char**)apr_array_push(arr) = "123"; *(const char**)apr_array_push(arr) = "456"; *(const char**)apr_array_push(arr) = "789"; /* it's often a good idea to have elements in the same memory pool */ *(const char**)apr_array_push(arr) = apr_pstrdup(mp, "abcdef"); *(const char**)apr_array_push(arr) = apr_pstrdup(mp, "ghijkl");}static void iterate_array(const apr_array_header_t *arr){ int i; for (i = 0; i < arr->nelts; i++) { const char *s = ((const char**)arr->elts)[i]; printf("%d: %s\n", i, s); }}/** * you can use array as stack (first-in, last-out) */static void iterate_stack_array(apr_array_header_t *arr){ const char **ppt; while ((ppt = apr_array_pop(arr))) { printf("pop'd string: %s\n", *ppt); }}/** * apr_array sample code * @remark Error checks omitted */int main(int argc, const char *argv[]){ apr_pool_t *mp; apr_array_header_t *arr; apr_initialize(); apr_pool_create(&mp, NULL); /* Create a dynamic array of string('const char*') */ arr = apr_array_make(mp, ARRAY_INIT_SZ, sizeof(const char*)); append_items_to_array(arr, mp); /* array iteration example */ iterate_array(arr); /* concatenate the all items. * We can do this, because the array is the array of string. */ printf("array concat = %s\n", apr_array_pstrcat(mp, arr, '\0')); /* yet another iteration, but removing the items */ iterate_stack_array(arr); /* the array is destroyed when @mp is destroyed */ apr_pool_destroy(mp); apr_terminate(); return 0;}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -