115 对象的生命周期

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

void life(int times)
{
    int i = 0;
    static int si = 0;
    char *buf = malloc(100);
    sprintf(buf, 
        "%2d times life: "
        "i=%2d",
        ++si, ++i);
    printf("%s", buf);
    free(buf);
    int n = times % 2 + 1;
    char ca[n];
    if (times % 2) {
        ca[0] = '.';
        putchar(ca[0]);
    }   
    else {
        ca[0] = '.';
        ca[1] = '|';
        putchar(ca[0]);
        putchar(ca[1]);
    }   
    putchar('\n');
}

int main(int argc, char *argv[])
{
    for (int j = 0; j < 10; j++)
        life(j+1);

    return 0;
}