Ответы:
Вам необходимо добавить:
#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>.
Причины почему лучше всего объясняются в ответах на этот вопрос: