LINUX.ORG.RU

Передача в функцию int *, если она хочет void *

 ,


0

1

Есть функция, которая особым образом выделяет память. Сколько - говорит пользователь. Как он будет использовать блок - его проблемы. Сигнатура:

int funcname(void ** pointer, int size);
Вот, например, мне нужен блок под int:
int * block;
if (funcname(&block, sizeof(int)) == -1)
   return -1;
А компилятор мне такой по рукам: а-та-та, не тот тип суешь. Делаю так:
int * block;
void * conv;
if (funcname(&conv, sizeof(int)) == -1)
   return -1;
block = conv;
Чувствую, что пахнет быдлокодом. Как это решить не переставляя void * как прямой результат функции (у меня там код ошибки во всех функциях)?

★★

Последнее исправление: cetjs2 (всего исправлений: 1)

Ответ на: комментарий от anonymous

У ARM можно режим переключать.

я предполагал это :) спасиб за инфу.

waker ★★★★★
()
Ответ на: комментарий от waker

STM32 — тупоконечный, малинка — тупоконечная, кубитрак — тупоконечный. На остальные мне пофиг, я с ними никогда не работал.

Первый раз когда с этим столкнулся, минут 10 не мог понять, какого хрена я вместо данных белиберду получаю. Потом подумал, что, наверное, конечность другая. Покурил даташит и переписал код правильно.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

не переживай, все ок. юникода тоже не бывает.

waker ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.