(Lua C API в C++) Освобождает ли Lua пользовательские данные автоматически?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 (Lua C API в C++) Освобождает ли Lua пользовательские данные автоматически?

Сообщение Anonymous »


У меня есть код, в котором я создаю пользовательские данные (круг), которые передаются в Lua, которые я также сохраняю как указатель на C++ и помещаю в вектор. После вызова lua_close(L) я пытаюсь удалить указатель, но это приводит к сбою программы. Я также пробовал бесплатно, но результат тот же

Из этого поста я узнал, что Lua автоматически освобождает пользовательские данные, и поэтому мне не нужно удалять указатель. Это правда?

Я настроен скептически, потому что после того, как я закрываю Lua с помощью lua_close(), я все еще могу получить доступ к кругу, перемещать его, рисовать и т. д.

Если я не удалю указатель на пользовательские данные, вызовет ли это утечку памяти?

Я пробовал удалить и освободить указатель, делая это перед закрытием Lua, но все просто вылетало

Вот как я создаю пользовательские данные
int Wrap_createCircle(lua_State* luaState){ Радиус плавания = lua_tonumber(luaState, 1); CircleShape* круг = (CircleShape*)lua_newuserdata(luaState, sizeof(CircleShape)); новый (круг) CircleShape (радиус); luaL_getmetatable(luaState, "CircleMetaTable"); lua_setmetatable (luaState, -2); возврат 1; }
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»