Что вы на самом деле хотите сделать? Ваш вопрос, похоже, спрашивает о переходе данных с C на Lua. Ваши комментарии предполагают, что вы хотите обмениваться памятью между двумя отдельными процессами.
Если вы просто хотите использовать некоторые C с Lua, тогда вы должны написать и добавить (и использовать userdata для перемещения данных). Например, если у вас есть библиотека, написанная на C, и вы хотите использовать ее в Lua, вам нужно будет расширить Lua с помощью модуля, обертывающего библиотеку. Это описано в Part IV of PIL. При использовании расширения существует только один процесс, поэтому память легко распределяется между C и Lua.
Если вам действительно нужно обмениваться данными между двумя процессами, вам нужно найти какой-то IPC, который будет работать для вас. Использование сокета - очевидный выбор, для этого вы можете использовать LuaSocket. Если вы хотите паб/суб, то вы можете попробовать LCM, который поддерживает как C, так и Lua.
Зачем вам это нужно или нужно? – lhf
Потому что я хочу написать два модуля 1: «Захватить IP-пакеты на языке« c »в требуемом формате« Структура »и выделить память с помощью malloc и передать указатель на эту структуру в lua через стек, совместно используемый между lua и c и 2: Lua модуль, который считывает этот пакет и обрабатывает его. – user2589882
Вы можете просто использовать для этого строки или таблицы. Строки в Lua a содержат произвольные двоичные данные. – lhf