我在这里的任务有问题。我需要创建一个全局空闲内存块并将其 malloc。由于类型转换和处理错误,在初始化它时遇到一些麻烦。
就像 C 中的数组,其中第一个数组实际上是指向第一个元素的指针,我的内存块需要类似,我可以使用指针算法来定位内存块。
//global variable
static byte *memory = NULL;
void allocator_init(u_int32_t size){
*memory = (byte*) malloc(size);
}
指向这些内存地址的地址/指针将通过结构/链接存储为内存块的 header 。
typedef struct _header {
int signiture;
int size;
header* next;
header* prev;
} header;
最佳答案
删除*
:
*memory = (byte*) malloc(size);
^
您可能还想放弃类型转换,但那是您的决定。
关于C内存分配初始化和处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12006802/