Использование указателей при вызове функций: "error C2100: недопустимое косвенное обращение" - C (СИ)
Формулировка задачи:
Просьба помочь с пониманием указателей в функциях.
Переползаю с delphi, поэтому просьба сильно не пинать.
Есть большая программа, пытаюсь написать отдельный модуль,
он получает данные из основной программы,
обрабатывает "кусками" и выдаёт обратно результат.
При моём текущем понимании указателей, правильная "конструкция":
Но не пропускает nmake: "error C2100: недопустимое косвенное обращение"
Если пишу
компилируется, но программа "падает"
Так-же и с "*outputSizeBytes"...
int c_dec(const void *input, int inputSizeBytes, void *output, int *outputSizeBytes) { const guint8 *dataIn = (const guint8 *)input; //типизируем входные данные? guint16 *dataOut = (guint16 *)output; //типизируем выходные данные? short synth[80]; .... for (fr_num=0; fr_num<FramePerInput; fr_num++){ //работает функция с блоком данных, выводит в synth for (j=0; j<80; j++){ *dataOut[j+(fr_num)*80]=synth[j]; //Передаём "кусок" данных на выход } } *outputSizeBytes=FramePerInput*(80*(sizeof (short))); // сообщаем количество данных на выходе .... }
*dataOut[j+(fr_num)*80]=synth[j];
dataOut[j+(fr_num)*80]=synth[j];
Забыл добавить: основная программа сменила версию, и в новой уже не работает.
В предыдущей версии работало с разименованными переменными.
Т.е. дело в том как вызывается функция, с какими параметрами?
Решение задачи: «Использование указателей при вызове функций: "error C2100: недопустимое косвенное обращение"»
textual
Листинг программы
*outputSizeBytes = inputSizeBytes * 2;
Объяснение кода листинга программы
- Переменная
inputSizeBytes
содержит размер входного массива в байтах. - Переменная
outputSizeBytes
будет содержать размер выходного массива в байтах. - Выполняется операция умножения
inputSizeBytes
на 2. - Результат сохраняется в переменной
outputSizeBytes
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д