2014-10-02 3 views
-2

Я работаю над домашней работой по классу C, и у меня возникают проблемы с использованием массивов. Вот пример одной из моих функций, которая имеет ошибку.Значение не является массивом, ни указателем, ни вектором

void multiply(int a, int size) 
{ 
    int i; 
    for(i = 0; i < size; i++){ 
     a[i] = a[i] * 5; 
     printf("%d, ", a[i]); 
     } 
    printf("\n"); 
} 

Он возвращает error: subscripted value is neither array nor pointer nor vector на линиях 5 & 6, когда я звоню на a[i]. У меня есть a как массив размером 10, но каждый раз, когда я пытаюсь вызвать индивидуальное значение в массиве, он не хочет работать. Я пробовал искать его, но ни одно из решений действительно не работает.

+1

'INT a' не является массивом. In - это 'int'. – juanchopanza

+0

Слово «вектор» в сообщении об ошибке относится к расширению языка C, специфичному для gcc, а не к «std :: vector» на C++. –

ответ

1

Вы должны изменить свою функцию:

void multiply(int * a, int size) 
1

Измените свой заголовок функции для:

void multiply(int* a, int size) 

Othewise функция считает a является ИНТ не целочисленный массив

+1

Фактически это делает 'a' указателем, а не массивом. Указатель указывает на первый элемент некоторого объекта массива, но он не является массивом. (Изменение кода верное, я рассказываю о его описании). –

Смежные вопросы

 Смежные вопросы