Я пытаюсь напечатать многомерный массив в C, но после этого я не могу этого сделать.Ошибка «Подстрочное значение не является ни массивом, ни указателем, ни вектором» по параметру в моем fuction, который явно является массивом
Функция:
void vypisArray(float arrayX[],int rozmeryX[]){
for (int i=0;i<rozmeryX[0];i++) {
for (int j=0; j < rozmeryX[1]; j++) {
printf("%f ",arrayX[i][j]); //line 40 --error here
}
printf("\n");
}
printf("\n");
}
и использование:
vypisArray(arrayX,rozmeryX);
Ожидаемый результат в основном распечатку любого многомерного массива с соответствующим форматированием в консоли.
Я что-то пропустил?, Может быть путаница с моей стороны shooed Я использую указатели для ссылки на свой массив, а затем просто передаю его в свою функцию как простой параметр многомерного массива?
Вот журнал ошибок:
In function 'vypisArray':
40 35 [Error] subscripted value is neither array nor pointer nor vector
In function 'skenujArray':
62 25 [Error] subscripted value is neither array nor pointer nor vector
In function 'main':
137 4 [Warning] passing argument 1 of 'skenujArray' from incompatible pointer type [enabled by default]
55 6 [Note] expected 'float *' but argument is of type 'float (*)[(sizetype)(rozmeryA[1])]'
138 4 [Warning] passing argument 1 of 'skenujArray' from incompatible pointer type [enabled by default]
55 6 [Note] expected 'float *' but argument is of type 'float (*)[(sizetype)(rozmeryB[1])]'
Edit: проблема решена, я был смущен о том, как указать MultiDim массивов в функции C.
void vypisArray(int rozmeryX[],float arrayX[][rozmeryX[1]]) // code works
Ваш параметр, который является «явно массив», на самом деле, а не массив, а указатель. – chris
Можете ли вы показать нам, как вы вызываете функцию, то есть определение данных, которые вы хотели передать как массив? – Christophe
Проблема @Christophe исправлена, я знаю, что массив [] будет достаточным, чтобы указать, что я работаю с многомерным массивом, вызывать в определении моей функции, я имел ошибку, когда я делал [] [] (вроде бы немой думать, я знаю) bud im новый для c, поэтому я уточнил еще и прокомментировал мое определение прототипа функции, и все работает так, как это было :). –