-4

次のコードのメモリの割り当てを解除する方法: 以下の構造体の構造体タグの name フィールドに名前を格納し、メモリの割り当てを解除したい

SINT32 TestExample(void)
{
    typedef struct tag
    {
        char *name;
    } ST;

    int i;
    ST **p, **p1;
    p = p1 = (ST **)calloc(1, 10 * sizeof(ST *));

    for(i=0; i<10; i++)
    {
        p[0] = (ST *)calloc(1, 10 * sizeof(ST));
        p[0]->name = (char *)malloc(20 * sizeof(char));

        sprintf(p[0]->name, "Name_%d", i);

        ++p;
    }

    /* TO DO: free the memory allocated in previous block */
    {
        ------------------------
    }

    p = NULL:
    return 0;
}
4

3 に答える 3