Почему я получаю предупреждение каждый раз, когда я использую malloc?

Я обычно пытаюсь поместить все свои различные типы (классы, интерфейсы и перечисления) в их собственных файлах, независимо от того, насколько маленький они. Это просто делает намного легче найти и управлять файлом, они находятся в, особенно если Вы, оказывается, не находитесь в Visual Studio и не имеете, "переходят к определению" доступная функция. Я нашел, что почти каждый раз поместил "простой" тип как этот в другом классе, я заканчиваю или прибавляющий к нему позже или снова использующий его способом, что больше не имеет смысл для него не иметь свой собственный файл.

, До которого пространства имен, это действительно зависит от дизайна того, что Вы разрабатываете. В целом я пытаюсь подражать соглашению платформы.NET.

108
задан Antti Haapala 10 May 2018 в 07:36
поделиться

4 ответа

Вам необходимо добавить:

#include <stdlib.h>

Этот файл включает объявление для встроенной функции malloc . Если вы этого не сделаете, компилятор решит, что вы хотите определить свою собственную функцию с именем malloc , и предупредит вас, потому что:

  1. Вы не объявляете это явно и
  2. Там уже является встроенной функцией с этим именем, которая имеет другую сигнатуру, чем та, которая была неявно объявлена ​​(когда функция объявляется неявно, предполагается, что ее возвращаемый тип и типы аргументов равны int , что не является t совместим со встроенным malloc , который принимает size_t и возвращает void * ).
222
ответ дан 24 November 2019 в 03:28
поделиться

Вы не выполнили #include .

30
ответ дан 24 November 2019 в 03:28
поделиться

Вам необходимо включить файл заголовка, который объявляет функцию, например:

#include <stdlib.h>

Если вы не включаете этот файл заголовка, функция не известна компилятору. Поэтому он считает это необъявленным.

16
ответ дан 24 November 2019 в 03:28
поделиться

возьмите за привычку искать свои функции в справке.

большая часть справки для C смоделирована на страницах справочника unix.

man malloc

дает довольно полезные результаты.

поиск в Google man malloc покажет вам, что Я имею в виду.

конечно, в unix вы также получаете по поводу вещей, которые связаны между собой.

10
ответ дан 24 November 2019 в 03:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: