มีปัญหากับงานของฉันที่นี่ ฉันต้องสร้างบล็อกหน่วยความจำว่างส่วนกลางและ malloc มัน มีปัญหาในการเริ่มต้นเนื่องจากข้อผิดพลาดของ typecast และการจัดการ
เช่นเดียวกับอาร์เรย์ในภาษา C โดยที่อาร์เรย์แรกเป็นตัวชี้ไปยังองค์ประกอบแรก บล็อกหน่วยความจำของฉันต้องคล้ายกันโดยที่ฉันสามารถใช้เลขคณิตของพอยน์เตอร์เพื่อค้นหาบล็อกของหน่วยความจำ
//global variable
static byte *memory = NULL;
void allocator_init(u_int32_t size){
*memory = (byte*) malloc(size);
}
ที่อยู่/ตัวชี้ไปยังที่อยู่หน่วยความจำเหล่านี้จะถูกจัดเก็บผ่านโครงสร้าง/ลิงก์เป็นส่วนหัวของบล็อกหน่วยความจำ
typedef struct _header {
int signiture;
int size;
header* next;
header* prev;
} header;
<stdlib.h>
ไว้ การร่ายจะซ้ำซ้อน หากคุณไม่ได้นักแสดงจะซ่อนจุดบกพร่องที่น่ารังเกียจ ... หรือคุณจะดีกว่าถ้าไม่มีนักแสดงไม่ว่าคุณจะรวมส่วนหัวที่เหมาะสม :) - person pmg   schedule 17.08.2012