최근 GCC 4.4.3을 사용하는 테스트 배포본으로 업데이트했습니다. 지금은 설정 한 모든 것을까지, 나는 코딩에 반환 한 내 프로젝트를 구축하고 나는이 끔찍한 메시지 중 하나가 얻을 :GCC, 함수 및 포인터 인수, 경고 동작
*** glibc detected *** ./boxyseq: free(): invalid pointer: 0x0000000001d873e8 ***
내가 절대적으로 여기 잘못 알고 있지만, 같은 다소 혼란스러워했다 동적으로 할당 된 데이터 구조를 해제하는 함수를 호출하는 C 코드를 보았을 때 - 완전히 다른 데이터 구조에 대한 포인터 인 호환되지 않는 포인터 유형을 전달했습니다.
warning: passing argument 1 of 'data_A_free' from incompatible pointer type
note: expected 'struct data_A *' but argument is of type 'struct data_B *'
이전에는 오류 였고 컴파일이 완료되지 않았기 때문에 혼란 스럽습니다. 이것은 C 프로그래머에게 삶을 더 어렵게 만들지 않을까요?
다른 경고 오류를 너무 많이 발생시키지 않고 오류로 다시 변경할 수 있습니까?
음모를 잃어 버렸는데 항상 경고 였나요?
항상 경고 인 경우이 질문을 삭제하겠습니다. –
오류를 만드는 방법을 알고 있다면 게시하십시오. 그것은 - 패 antic얼 오류로 덮여 있지만, 더 넓습니다. –
@Matthew 그래서 항상 경고였습니다. 내가 알게되면 http://gcc.gnu.org/onlinedocs/gcc-4.4.0/gcc/Warning-Options.html을 통해 빠른 검색을하면 아무 것도 공개되지 않습니다. –