Здравствуйте, гость ( Вход | Регистрация )

> ffi создание указателя на многомерный массив
DarkMaster
сообщение 7.8.2022, 20:11
Сообщение #1


***********

Модератор UOPilot
Сообщений: 9.743
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29658
Пользователь №: 11.279



Собственно есть некоторый указатель на void либо просто number с адресом.
Нужно создать указатель на int[123][321] по этому адресу.
cast ругается на такие выкрутасы ну либо я что-то не так по синтаксису делаю.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
DarkMaster
сообщение 9.8.2022, 0:39
Сообщение #2


***********

Модератор UOPilot
Сообщений: 9.743
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29658
Пользователь №: 11.279



new создаст объект, а не указатель. Если в тип добавить *, то все равно создаст объект.
при
arr = arr+1
происходит превращение из int[10][10] в int*[10], но указатель дает двигать.
Т.е. по сути дела вроде как работать будет, но при этом будет мусорить изначальными объектами, которые потом вообще хрен удалишь скорее всего после таких приколов.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 9.8.2022, 0:58
Сообщение #3


********

Master
Сообщений: 1.403
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 22548
Пользователь №: 16.156



Цитата(DarkMaster @ 9.8.2022, 0:39) *

new создаст объект, а не указатель. Если в тип добавить *, то все равно создаст объект.
при
arr = arr+1
происходит превращение из int[10][10] в int*[10], но указатель дает двигать.
Т.е. по сути дела вроде как работать будет, но при этом будет мусорить изначальными объектами, которые потом вообще хрен удалишь скорее всего после таких приколов.




значит нужно взять адрес объекта, чего скорее всего ffi не даст сделать
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
DarkMaster   ffi создание указателя на многомерный массив   7.8.2022, 20:11
Cockney   В плюсах (парсер ffi примерно от туда) нельзя каст...   7.8.2022, 22:49
Cockney   еще вот такой урод можно испытать, сначала делаем ...   7.8.2022, 23:40
DarkMaster   орет invalid C type как только видит квадратные ск...   8.8.2022, 1:12
Cockney   А ескейп работает ? Типа \[\]   8.8.2022, 1:20
DarkMaster   Начинает орать про eof. Такое впечатление как-будт...   8.8.2022, 1:29
Cockney   А в чем сакральный смысл каста именно к размерност...   8.8.2022, 1:38
DarkMaster   Чтобы первый индекс работал второй должен быть из...   8.8.2022, 1:41
Cockney   Чтобы первый индекс работал второй должен быть из...   8.8.2022, 1:52
Cockney   Тут парни чет нагородили https://stackoverflow.co...   8.8.2022, 2:11
DarkMaster   Вот смотри, у нас есть некоторый *int и последоват...   8.8.2022, 2:39
DarkMaster   https://stackoverflow.com/questions/1052818...mens...   8.8.2022, 3:05
Cockney   Могу только посочувствовать и пожелать успехов   8.8.2022, 12:45
DarkMaster   Если все-таки будет желание. Наткнулся на такую ве...   8.8.2022, 18:12
Cockney   Если все-таки будет желание. Наткнулся на такую в...   8.8.2022, 18:26
DarkMaster   В таком варианте не понятно как его инициализиров...   8.8.2022, 19:00
Cockney   Сначала тайпдеф, потом создать объектом с типом ar...   8.8.2022, 20:54
DarkMaster   Так в ffi.cdef тайп дефе невозможно сделать что-то...   8.8.2022, 21:38
Cockney   Так в ffi.cdef тайп дефе невозможно сделать что-т...   8.8.2022, 22:55
DarkMaster   local arr = ffi.typeof("int[$...   8.8.2022, 23:46
Cockney   local arr_type = ffi.typeof("int[...   8.8.2022, 23:58
Cockney   local arr_type = ffi.typeof("int[...   9.8.2022, 17:11
DarkMaster   Адрес могу предоставть - это не проблема. Проблема...   9.8.2022, 1:23
Cockney   а из си можно сразу вернуть int[][] например так i...   9.8.2022, 10:45
DarkMaster   То упадет в обморок при виде скобок...   9.8.2022, 11:32
DarkMaster   declaration specifier expected near 'arr_type...   9.8.2022, 18:13
Cockney   Напомни, а тайпдеф ты пробовал делать внутри cdef ...   9.8.2022, 20:23
Cockney   local ffi = require("ffi") ffi.cd...   9.8.2022, 21:48
DarkMaster   Спасибо. Чую долго бы я еще развлекался... Итогово...   10.8.2022, 2:33


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 12.7.2025, 18:09
Designed by Nickostyle