Esempio n. 1
0
int main() {
    node *list = NULL;
    node *n;

    // create a list
    for (int i = 0; i < 400; ++i) {
	n = (node *) malloc(sizeof(node));
	n->next = list;
	list = n;
    }

    // free everything in it but one
    while (list && list->next) {
	node **pprev = &list;
	while ((n = *pprev)) {
	    *pprev = n->next;
	    free(n);
	    if (*pprev)
		pprev = &(*pprev)->next;
	}
    }

    printf("EXPECTED LEAK: %p with size %zu\n", list, sizeof(node));
    m61_printleakreport();
}
Esempio n. 2
0
int main() {
    char *ptrs[10];
    ptrs[0] = (char *) malloc(10);
    ptrs[1] = (char *) malloc(11);
    ptrs[2] = (char *) malloc(12);
    ptrs[3] = (char *) malloc(13);
    ptrs[4] = (char *) malloc(14);
    ptrs[5] = (char *) malloc(15);
    ptrs[6] = (char *) malloc(16);
    ptrs[7] = (char *) malloc(17);
    ptrs[8] = (char *) malloc(18);
    ptrs[9] = (char *) malloc(19);

    free(ptrs[3]);
    free(ptrs[8]);
    free(ptrs[0]);
    m61_printleakreport();
}
Esempio n. 3
0
int main() {
    node *list = NULL;
    node *n;

    // create a list
    for (int i = 0; i < 400; ++i) {
	n = (node *) malloc(sizeof(node));
	n->next = list;
	list = n;
    }

    // free everything in it
    while ((n = list)) {
	list = n->next;
	free(n);
    }

    m61_printleakreport();
    printf("OK\n");
}