의 내가 C99에서 malloc()
의 체크 버전을 쓰기 위해 노력하고있어 가정 해 봅시다 - 공상 아무것도, malloc()
반환하는 경우 NULL
가 stderr
에 에러 메시지를 출력하고 종료하는 간단한 래퍼. 이와 함께 문제의로깅 메모리 할당 오류
void* checked_malloc(size_t size) {
void* ptr = malloc(size);
if (ptr == NULL) {
fprintf(stderr, "Failed to allocate %zd bytes\n", size);
exit(1);
}
return ptr;
}
같은 뭔가 fprintf와 - 그것은 자신에 메모리를 할당을 시도 할 수 있습니다 우리는 메모리가 부족하기 때문에 이미 비정상적으로 실패 할 것이다.
메모리 할당 실패 후 오류 메시지를 확실하게 기록하는 방법이 있습니까? 또는 더 나은 접근 방법이 있습니까? malloc()
을 작성 했습니까? 컴파일러에 의존하지 않는 솔루션이 대단히 좋습니다.