This file은 매우 빠른 블록 할당 체계를 구현하는 GoAhead WebServer의 일부입니다.왜 메모리 액세스 위반이 발생합니까?
라인 284에서 웹 서버 프로세스가 임의의 시간에 충돌합니다.
} else if ((bp = bQhead[q]) != NULL) {
/*
* Take first block off the relevant q if non-empty
*/
bQhead[q] = bp->u.next; //MEMORY ACCESS VIOLATION HERE
가능한 원인은 무엇입니까?
편집
BP는 this header file
typedef struct {
union {
void *next; /* Pointer to next in q */
int size; /* Actual requested size */
} u;
int flags; /* Per block allocation flags */
} bType;
감사에서이 구조와 노동 조합에 대한 포인터입니다.
무엇입니까? 우리는 더 많은 정보가 필요합니다. – Mark
확실하게 당신은 가능한 이유가 무엇인지 이미 알고 있습니다. AV는 프로세스에없는 메모리를 처리 할 때 발생합니다. –