답변:
다음을 추가해야합니다.
#include <stdlib.h>
이 파일에는 내장 함수에 대한 선언이 포함되어 있습니다 malloc
. 그렇게하지 않으면 컴파일러 malloc
는 이름이 지정된 함수를 정의하고 싶다고 생각하고 다음 과 같은 이유로 경고합니다.
int
호환되지 않는으로 간주됩니다 .) in malloc
, a를 취하고 a) size_t
를 반환합니다 void*
.다른 매우 좋은 답변 외에도 약간의 간단한 작업을 수행하고 다른 답변에서 아직 논의되지 않은 것을 다루고 싶습니다.
Linux에있을 때 malloc()
코드에서 사용하려면
당신은 실제로 할 필요가 없습니다 #include <stdlib.h>
.
(의 사용 stdlib.h
은 매우 일반적이며 아마도 장난감이 아닌 모든 프로그램은 유용한 C 표준 라이브러리 함수와 매크로를 광범위하게 제공하기 때문에 어느 쪽이든 포함해야합니다)
#include <malloc.h>
대신 할 수도 있습니다 .
그러나의 사용 malloc.h
은 더 이상 사용되지 않으며 코드를 이식 할 수 없게 만듭니다. 당신이 사용하고 싶다면 malloc()
당신은 항상 (명시적인 이유를 제외하고) 항상해야합니다 #include <stdlib.h>
.
이유 왜 가장이 질문에 대한 답변에 설명되어 있습니다 :