Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Chyrka
0 / 0 / 0
Регистрация: 11.02.2015
Сообщений: 4
1

Как передать из кода луа в программу на с++ массив чисел

14.09.2011, 14:52. Просмотров 973. Ответов 3
Метки нет (Все метки)

Здравствуйте! Может немного не в тему, но решил написать здесь. В общем, передо мною стоит задача передать из кода луа в программу на с++ массив чисел, что-то типа такого:
Код
fi=0
gama=0.5
amp=1
n=32


function sinewave ()
	print ( 'fi= ', fi,'gama= ', gama,'amp= ', amp)
	for i=1,n do
	arr[i]=amp*math.sin(gama*i+fi0)
	end
	return arr,n
end
Подскажите пожалуйста, как трансформировать массив со стека в обычный С-ный, если такое вообще возможно.
Кроме этого желательно иметь возможность наоборот класть массив из программы на с++ в стек, чтобы оперировать с ним в коде луа.
Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.09.2011, 14:52
Ответы с готовыми решениями:

Как можно использовать функции написанные на луа
Попробовал подключить - получилось, но использовать функции почему то не...

Как передать массив из базы данных (передать массив из php в javascript методом ajax)
<?php //php страница qwe.php для обработки ajax запроса ...

Как передать массив вещественных чисел от клиента к серверу?
Есть клиент/сервер на си, использующий winsock. Клиент/сервер получает и...

Как передать массив вещественных чисел от клиента к серверу?
Есть клиент/сервер на си, использующий winsock. Клиент/сервер получает и...

Как передать массив комплексных чисел через параметр в подпрограмму?
Здравствуйте , беспокоит следующий вопрос: имеется класс комплексных чисел с...

3
Evg
Эксперт CАвтор FAQ
19288 / 7147 / 528
Регистрация: 30.03.2009
Сообщений: 20,000
Записей в блоге: 30
14.09.2011, 15:24 2
Chyrka, С такими вопросами лучше на http://www.lua.ru/ обращаться (там тыкаешь в раздел "Форум"). Если не затруднит, то потом здесь отпиши итог
0
Chyrka
0 / 0 / 0
Регистрация: 11.02.2015
Сообщений: 4
16.09.2011, 14:26 3
Немного исправил код в луа
Код
function sinewave ()
	fi0=0
	gama=0.5
	amp=1
	n=8
	arr = {}
	
	print ( 'fi= ', fi,'gama= ', gama,'amp= ', amp)
	for i=1,n,1 do
	arr[i]=amp*math.sin(gama*i+fi0)
	end	
	return n,arr
end
ну а в с++ после кода, который запускает программку sinewave, нужно записать:
C++
1
2
3
4
5
6
7
lua_pushnil(lua);
while (lua_next(lua, -2) != 0) 
   {
    double outv=lua_tonumber(lua,-1);
    std::cout << outv << endl;                      
    lua_pop(lua, 1);  
   }
0
Evg
Эксперт CАвтор FAQ
19288 / 7147 / 528
Регистрация: 30.03.2009
Сообщений: 20,000
Записей в блоге: 30
16.09.2011, 15:09 4
Цитата Сообщение от Chyrka Посмотреть сообщение
ну а в с++ после кода, который запускает программку sinewave, нужно записать
Итог получается такой, что в стеке последовательно записаны сначала "n", потом "arr[0]", потом "arr[1]" и т.п. Массив как таковой ничем не подсвечивается, а просто передаётся как список значений

Добавлено через 1 минуту
Кстати, в твоём случае было бы честным сначала прочитать n, а потом делать цикл от 1 до n и читать значения. А загнать сначала пустышку, а потом читать до тех пор, пока на неё не наткнёмся - это больше на затычку смахивает
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.09.2011, 15:09

Не могу разобраться как передать корректно передать массив из функции в функцию
//--------------------------------------------------------------------------- ...

Массив чисел типа double передать в функцию, которая суммирует и возвращает сумму и массив
Написать функцию, которой передается массив чисел типа double, Функция...

Из неуправляемого кода стороннего приложения, передать в свое приложение массив байт
Опишу сначала суть задачи, 1. Требуется из неуправляемого кода стороннего...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru