Ошибка компилятора при передаче массива в качестве параметра в VC ++ 2010 - PullRequest
0 голосов
/ 08 декабря 2010

Возможно, это вопрос новичка, так как я только учусь программированию. Я изучаю алгоритмы QuickSort и пытаюсь передать массив int в качестве параметра моей функции quickSort (). Когда я пытаюсь скомпилировать в VC ++ 2010, я получаю ошибку компилятора.

Я посмотрел, как передавать массивы в качестве параметров, и попытался отразить то, что они сделали, но, похоже, это не сработало. здесь: Здесь - это место, где я его посмотрел, это последний раздел на странице (прокрутите до конца). Я попытался передать массив, как описано в этой статье, но я все еще получаю ошибку компиляции. См. Кодовое сообщение (неполное) ниже для примера того, что я делаю, и ошибки компиляции. Есть предложения?

int aTest[7] = {7, 5, 9, 3, 4, 8, 6};
int left = 0;
int right = 6; 
quickSort(aTest, left, right);   //this is line 16 referenced in the compiler error
void quickSort(int aTest[], int left, int right)

//main.cpp(16): error C2664: 'quickSort' : cannot convert parameter 1 from 'int [7]' to 'int'
//          There is no context in which this conversion is possible

Ответы [ 2 ]

2 голосов
/ 08 декабря 2010

Насколько я понимаю, это C, а не C ++.Если я правильно понял, вы должны поставить прототип перед «строкой 16».
Под прототипом я подразумеваю строку void quickSort(int aTest[], int left, int right).

1 голос
/ 08 декабря 2010

Как утверждает Анатолиг, это заказ прототипа.Компилятор, предполагающий, что быстрая сортировка принимает один параметр int.Попробуйте установить самый высокий уровень предупреждения, и вы должны увидеть предупреждение о том, что быстрая сортировка не определена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...