118 内存泄漏

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

typedef struct tagIDCard {
    long serialNo;
    char name[32];
} IDCard;

IDCard *make_idcard(long serialNo, char *name)
{
    IDCard *id;
    if ((id = malloc(sizeof(IDCard))) == NULL)
        return NULL;
    id->serialNo = serialNo;
    strcpy(id->name, name);
    return id; 
}

void print_idcard(IDCard *id)
{
    if (id) {
        printf("%20s: %ld\n"
                "%20s: %s\n",
                "ID SerialNo.", id->serialNo,
                "ID name", id->name);
    }   
}

int main(int argc, char *argv[])
{
    IDCard *id = make_idcard(200401L, "x401");
    printf("sizeof IDCard object: %ld\n",
        sizeof(*id));
    if (id) {
        print_idcard(id);
        //free(id);
    }   
    return 0;
}