#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    char *cp_0 = "asd";
    char *cp_1 = "123";
    char *cp_2 = "zxc";
    char *cp_3 = "qaz";
    char *cp_4 = "wsx";
    char **cp;
    char **temp;
    int i;

    // 最初
    cp = (char **) malloc(3 * sizeof(char *));
    cp[0] = cp_0;
    cp[1] = cp_1;
    cp[2] = cp_2;

    // 2個増える
    temp = (char **) malloc((3 + 2) * sizeof(char *));
    memcpy(temp, cp, 3 * sizeof(char *));
    free(cp);
    cp = temp;
    cp[3] = cp_3;
    cp[4] = cp_4;

    // 表示
    for (i = 0; i < 5; i++) {
        printf("%d %s\n", i, cp[i]);
    }

    // 解放
    free(cp);

    // 終了
    return 0;
}
