Использование указателей при вызове функций: "error C2100: недопустимое косвенное обращение" - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Просьба помочь с пониманием указателей в функциях. Переползаю с delphi, поэтому просьба сильно не пинать. Есть большая программа, пытаюсь написать отдельный модуль, он получает данные из основной программы, обрабатывает "кусками" и выдаёт обратно результат.
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];
Но не пропускает nmake: "error C2100: недопустимое косвенное обращение" Если пишу
dataOut[j+(fr_num)*80]=synth[j];
компилируется, но программа "падает" Так-же и с "*outputSizeBytes"...
Забыл добавить: основная программа сменила версию, и в новой уже не работает. В предыдущей версии работало с разименованными переменными. Т.е. дело в том как вызывается функция, с какими параметрами?

Решение задачи: «Использование указателей при вызове функций: "error C2100: недопустимое косвенное обращение"»

textual
Листинг программы
*outputSizeBytes = inputSizeBytes * 2;

Объяснение кода листинга программы

  1. Переменная inputSizeBytes содержит размер входного массива в байтах.
  2. Переменная outputSizeBytes будет содержать размер выходного массива в байтах.
  3. Выполняется операция умножения inputSizeBytes на 2.
  4. Результат сохраняется в переменной outputSizeBytes.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5
Похожие ответы