2
所以我試圖釋放上下文。如何在ucontext *,linux中釋放堆棧?
這裏是我創建的上下文
ucontext* uPtr = new ucontext;
getcontext(uPtr);
char* stack = new char[STACK_SIZE];
uPtr->uc_stack.ss_sp = stack;
uPtr->uc_stack.ss_size = STACK_SIZE;
uPtr->uc_stack.ss_flags = 0;
uPtr->uc_link = NULL;
makecontext(uPtr, (void (*)()) func, 2, arg1, arg2);
後,我創建類似上面的情況下,我使用它,並嘗試刪除時,我做了 但我無法弄清楚如何刪除uPtr-> uc_stack.ss_sp。
我試圖
delete[] foo; //suppose I saved the char* stack in foo
,但它給了我賽格故障
,當我試圖
delete[] (char*)uPtr->uc_stack.sS_sp;
我不認爲它正確地刪除堆棧。 有誰知道如何做到這一點? 非常感謝您
我不太明白foo是什麼。它是一個ucontext類型或char *?以及當你嘗試刪除[](char *)時發生了什麼uPtr-> uc_stack.ss_sp? – jasonkim