예제 #1
0
파일: ex17-2.c 프로젝트: yowcow/c-hard-way
int main() {

    List_t* l1 = (List_t*) malloc(sizeof(List_t));
    l1->p = (Person_t*) malloc(sizeof(Person_t));
    l1->p->id = 111;
    l1->p->name = "ほげほげ";
    l1->next = NULL;

    List_t* l2 = (List_t*) malloc(sizeof(List_t));
    l2->p = (Person_t*) malloc(sizeof(Person_t));
    l2->p->id = 222;
    l2->p->name = "ふがふが";
    l2->next = NULL;
    l1->next = l2;

    List_t* l3 = (List_t*) malloc(sizeof(List_t));
    l3->p = (Person_t*) malloc(sizeof(Person_t));
    l3->p->id = 333;
    l3->p->name = "ほげふが";
    l3->next = NULL;
    l2->next = l3;

    print_people(l1);
    free_people(l1);

    return 0;
}
예제 #2
0
파일: ai_objects.c 프로젝트: acm-uiuc/mm20
void free_received_turn(received_turn_t * received_turn) {
    int i;
    for (i = 0; i < received_turn->num_errors; i++) {
        free(received_turn->errors[i]);
    }
    free(received_turn->errors);
    free_people(received_turn->people, received_turn->num_people);
    for (i = 0; i < received_turn->num_rooms; i++) {
        int j;
        free(received_turn->rooms[i].room_id);
        free(received_turn->rooms[i].people_ids);
        free(received_turn->rooms[i].resources);
        for (j = 0; j < received_turn->rooms[i].num_connected_rooms; j++) {
            free(received_turn->rooms[i].connected_rooms[j]);
        }
        free(received_turn->rooms[i].connected_rooms);
    }
    free(received_turn->rooms);
    for (i = 0; i < received_turn->num_messages; i++) {
        free(received_turn->messages[i].action);
        free(received_turn->messages[i].message);
        free(received_turn->messages[i].reason);
    }
    free(received_turn->messages);
    for (i = 0; i < received_turn->num_events; i++) {
        free(received_turn->events[i].room_id);
    }
    free(received_turn->events);
    free(received_turn);
}
예제 #3
0
파일: ex17-2.c 프로젝트: yowcow/c-hard-way
void free_people(List_t* list) {
    if (list->next) {
        free_people(list->next);
    }

    free(list->p);
    free(list);
}
예제 #4
0
파일: ai_objects.c 프로젝트: acm-uiuc/mm20
void free_initial_received(initial_received_t * received) {
    int i;
    for (i = 0; i < received->num_errors; i++) {
        free(received->errors[i]);
    }
    free(received->errors);
    free(received->team_name);
    free_people(received->team_members, received->num_team_members);
    free(received);
}