#c
Вопрос:
Я пытаюсь создать массив указателей на языке Си, и я не могу понять концепцию. Я продолжаю получать ошибки компилятора, такие как «выражение должно иметь постоянное значение» или «в этом объявлении нет класса хранения или спецификатора типа».
Цель, которую я пытаюсь достичь, — создать массив указателей, представляющий собой список адресов в памяти, где хранятся данные. Я хотел бы передать этот массив в качестве аргумента функции ASM. Вот фрагмент кода:
extern void doSomething(Int16**); Int16 arr1[4] = { // data here }; Int16 arr2[4] = { // data here }; Int16 arr3[4] = { // data here }; Int16 arr4[4] = { // data here }; Int16 arr5[4] = { // data here }; Int16 arr6[4] = { // data here }; Int16 arr7[4] = { // data here }; Int16 arr8[4] = { // data here }; Int16* dataPointers[8] = {arr1, arr2, arr3, arr4, arr5, arr6, arr7, arr8 }; doSomething(dataPointers);
Я работаю с процессором TI, поэтому Int16-это тип данных, определенный TI.
Я использую этот маршрут с указателями на массивы, потому что функция ASM должна иметь все 8 этих адресов, но работать только с 5 регистрами.
Я был бы признателен за любые советы.