int main() { int count; scanf("%d", &count); int *data = (int*)malloc(count * sizeof(int)); int i; for (i = 0; i < count; i++) scanf("%d", &data[i]); sort_fn(data, count); printf("result:\n"); for (i = 0; i < count; i++) printf("%d ", data[i]); printf("\n"); return 0; }
static struct alloc_stat *search_alloc_stat(unsigned long ptr, unsigned long call_site, struct rb_root *root, sort_fn_t sort_fn) { struct rb_node *node = root->rb_node; struct alloc_stat key = { .ptr = ptr, .call_site = call_site }; while (node) { struct alloc_stat *data; int cmp; data = rb_entry(node, struct alloc_stat, node); cmp = sort_fn(&key, data); if (cmp < 0) node = node->rb_left; else if (cmp > 0) node = node->rb_right; else return data; } return NULL; }