Когда я пытаюсь использовать malloc
в модуле ядра я получаю сообщение об ошибке из компилятора. Мой код:
res=(ListNode*)malloc(sizeof(ListNode));
Сообщение об ошибке компиляторов:
/root/ex3/ex3mod.c:491: error: implicit declaration of function ‘malloc’
Что мне делать?
Вы не можете использовать библиотеки в ядре. Никак нет.
Это означает, что ЛЮБАЯ функция, которую вы вызываете в ядре, должна быть определена в ядре. Linux не определяет malloc, поэтому вы не можете его использовать.
Есть распределитель памяти и семейство функций распределения памяти. Прочтите документацию ядра по распределителю памяти для получения дополнительной информации.
Кстати, ядро определяет несколько функций, которые также есть в стандартной библиотеке C; это для удобства.
Это, например, определено snprintf