2012-04-27 3 views
0

이 게시물 https://stackoverflow.com/a/827749에서 ringbuffer를 구현하려고하는데 추가 한 코드는 다음과 같은 메인 코드입니다.C struct 포인터 Seg.fault malloc()

int main(int argc, char** argv) { 
    circular_buffer *my_buff; 
    cb_init(my_buff, 16, sizeof(char)); 

    return (EXIT_SUCCESS); 
} 

이 코드를 실행하자마자 SIGSEV (Segmentation fault) 오류가 발생합니다. 이것에 의해 malloc()이 호출되는 cb_init()의 첫 번째 행에서 발생합니다.

+2

이 무엇 디버깅이 시도? –

답변

3

당신은 역 참조 cb_init에 당신이 초기화되지 않은 포인터를 전달하는 순간 my_buff

메모리를 할당해야합니다.

하지만 난 당신이 디버거에서 코드를 실행 시도 확신하기 때문에 당신이 실현해야합니다 확신 ...

+0

Netbeans 디버거에서 실행하려고했지만 모든 정보를 무엇을 만들지 실제로 알지 못합니다. 그러나 나는 당신이 의미하는 바를 완전히 보았고, 당신이 말할 때 그렇게 분명합니다. 감사! – evading

+0

당신을 진심으로 환영합니다. – Nick