문제

내가 사용하는 경우 malloc 내 코드에서 :

int *x = malloc(sizeof(int));

나는이 경고를 받는다 gcc:

new.c:7: warning: implicit declaration of function ‘malloc’  
new.c:7: warning: incompatible implicit declaration of built-in function ‘malloc’
도움이 되었습니까?

해결책

추가해야합니다.

#include <stdlib.h>

이 파일에는 내장 기능에 대한 선언이 포함되어 있습니다 malloc. 그렇게하지 않으면 컴파일러는 자신의 기능을 정의하고 싶다고 생각합니다. malloc 그리고 그것은 당신에게 경고합니다.

  1. 당신은 그것을 명시 적으로 선언하지 않습니다 그리고
  2. 해당 이름의 내장 함수가 이미 내장 된 기능이 있으며, 암시 적으로 선언 된 것과는 다른 서명이 있습니다 (함수가 암시 적으로 선언 될 때, 반환 및 인수 유형은 int, 내장과 호환되지 않습니다 malloc, 그것은 a size_t 그리고 반환 a void*).

다른 팁

당신은하지 않았습니다 #include <stdlib.h>.

예를 들어 함수를 선언하는 헤더 파일을 포함해야합니다.

#include <stdlib.h>

이 헤더 파일을 포함하지 않으면 기능이 컴파일러에 알려지지 않았습니다. 그래서 그것은 선언되지 않은 것으로 본다.

당신의 기능을 도움으로 바라 보는 습관을 만드십시오.

C에 대한 대부분의 도움말은 UNIX 매뉴얼 페이지에서 모델링됩니다.

MAN MALLOC

매우 유용한 결과를 제공합니다.

Googling Man Malloc이 내가 의미하는 바를 보여줄 것입니다.

물론 유닉스에서는 관련이있는 것들에 대한 Apropos도 얻습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top