У меня есть эта проблема на C, где я должен реализовать сборщик мусора. Я застрял в том, что мне дали 4 функции для завершения и не знаю, как они соединяются друг с другом. Я не уверен, что делать. Это то, что у меня есть до сих пор:Реализация Mark Sweep Сборщик мусора в C
void mygc() {
//int **max = (int **) 0xbfffffffUL; // the address of the top of the stack
unsigned long stack_bottom;
int **max = (int **) GC_init(); // get the address of the bottom of the stack
int* q;
int **p = &q; // the address of the bottom of the stack
while (p < max) {
//printf("0. p: %u, *p: %u max: %u\n",p,*p,max);
mark(*p);
p++;
}
//utilize sweep and coalesce (coalesce function already written)
}
void mark(int *p) {
int i;
int *ptr;
//code here
}
void sweep(int *ptr) {
// code here
}
int *isPtr(int *p) {
//return the pointer or NULL
int *ptr = start;
//code here
}
переменная; 'stack_bottom' не используется. это вызывает предупреждение компилятора. предложите включить все предупреждения компилятора, перекомпилировать, исправить предупреждения, повторно опубликовать код. учитывая опубликованный код, есть несколько других предупреждений компилятора. Пожалуйста, отправьте код, который компилирует/ссылки, чтобы мы могли отладить проблему – user3629249
, возможно, было бы полезно, если бы вы включили описания того, что каждая функция должна выполнить. – user3629249
как в стороне, если вы уже не хотите, чтобы вы могли заглянуть в [сборщик бэма] (https://github.com/ivmai/bdwgc) – the8472