Ответы:
Вам необходимо добавить:
#include <stdlib.h>
Этот файл включает объявление встроенной функции malloc
. Если вы этого не сделаете, компилятор решит, что вы хотите определить свою собственную функцию с именем, malloc
и предупредит вас, потому что:
int
, что ее возвращаемый тип и типы аргументов не совместимы со встроенным in malloc
, который принимает a size_t
и возвращает a void*
).Возьмите за привычку искать свои функции в справке.
Большая часть справки для C смоделирована на страницах справочника unix.
С помощью :
man malloc
дает довольно полезные результаты.
Поиск в Google man malloc
покажет вам, что я имею в виду.
В unix вы также получаете информацию о связанных между собой вещах.
#include <stdlib.h>
в синопсисе означает, что вы должны записать это в своей программе.
Помимо других очень хороших ответов, я хотел бы сделать небольшую придирку и затронуть то, что еще не обсуждается в других ответах.
Когда вы работаете в Linux, чтобы использовать malloc()
в своем коде,
На самом деле это не обязательно #include <stdlib.h>
.
(Хотя использование stdlib.h
очень распространено и, вероятно, каждая программа, не являющаяся игрушечной, должна включать его в любом случае, потому что она предоставляет широкий спектр полезных функций стандартной библиотеки C и макросов)
Вы также могли бы #include <malloc.h>
вместо этого.
Но обратите внимание, что использование malloc.h
не рекомендуется, и это делает ваш код непереносимым. Если вы хотите использовать, malloc()
вы должны всегда и всегда (за исключением явных причин, чтобы сделать иначе) #include <stdlib.h>
.
Причины почему лучше всего объясняются в ответах на этот вопрос: