⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 array-sample.c

📁 跨平台windowsunixlinux的c语言编程解决方案
💻 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 + -