Перерасчет * аргументов пустой функции - PullRequest
1 голос
/ 08 декабря 2011

Я разместил вопрос здесь ранее, на который я думаю, что смогу ответить, если кто-то может помочь мне со следующим:

У меня есть функция

double func(void* data)

Я хочу передать объект или структуру. (В моем случае матрица броненосца или даже просто и std :: vector).

Как передать указатель на объект в качестве аргумента функции func (), а затем, как только внутри func (), как преобразовать указатель void в исходный тип?

Редактировать : Вот что сработало, где mat - это матричный класс Armadillo:

mat A(2,2);
A << 1 << 2 << endr << 3 << 4; // A=[1,2; 3,4]
func(&A);

и в функах:

double func(void* data) {
   mat* pB = (mat*)(data);
   mat B = pB[0];
}

Матрица B и A теперь содержат одинаковые данные.

1 Ответ

0 голосов
/ 08 декабря 2011

Если я вас правильно понимаю, вам нужно что-то вроде этого.

double func(void* data_v) {
  struct my_type * data = data_v;
}

func((void*)my_data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...