P
profjwang
the problem is in some strange for me,
the program's goal will realize my own malloc and free function,
the project's h_file below:
#ifndef _MALLOCFREE_H_
#define _MALLOCFREE_H_
#define PAGE_SIZE 4096
#define BUCKET_SIZE (PAGE_SIZE*1)
#define BUCKET_MASK (BUCKET_SIZE-sizeof(bucket_t))
struct object_t{
object_t *next;
char data[0];
};
struct bucket_t{
bucket_t *next, *prev;
int object_size;
int object_num;
object_t *free_object;
int free_object_num;
object_t objects[0];
void *alloc();
void free(void *ptr);
};
struct pool_t{
bucket_t dummy;
int object_size;
bucket_t *new_bucket();
void free_bucket(bucket_t *b);
void *alloc();
void free(void *ptr);
};
#endif
the program's goal will realize my own malloc and free function,
the project's h_file below:
#ifndef _MALLOCFREE_H_
#define _MALLOCFREE_H_
#define PAGE_SIZE 4096
#define BUCKET_SIZE (PAGE_SIZE*1)
#define BUCKET_MASK (BUCKET_SIZE-sizeof(bucket_t))
struct object_t{
object_t *next;
char data[0];
};
struct bucket_t{
bucket_t *next, *prev;
int object_size;
int object_num;
object_t *free_object;
int free_object_num;
object_t objects[0];
void *alloc();
void free(void *ptr);
};
struct pool_t{
bucket_t dummy;
int object_size;
bucket_t *new_bucket();
void free_bucket(bucket_t *b);
void *alloc();
void free(void *ptr);
};
#endif