Если execute()
должен принимать массив целых чисел, вы, вероятно, должны объявить его следующим образом:
void execute(int* anArr, int anArrLength, int aVal)
{
// ...
}
Обратите внимание, что в вашем методе есть несколько отличий:
anArr
передается как указатель на начало массива. Код клиента может просто передать имя переменной массива, поскольку по определению это эквивалентно «указателю на начало массива».
anArrLength
передается для указания длины массива. Это необходимо для того, чтобы метод execute()
не обращался к памяти, находящейся за пределами массива (или того, что было выделено для массива). Это может привести к повреждению памяти .
Вы можете улучшить сигнатуру метода выше, добавив возвращаемое значение, чтобы указать успех или неудачу. Это позволило бы клиентскому коду определить наличие проблем. Например:
// Returns true on success, false on failure
bool execute(int* anArr, int anArrLength, int aVal)
{
// Get "value" through whatever means necessary
// ...
if (value >= anArrLength)
{
// Out of bounds of array!
return false;
}
anArr[value] = aVal;
// Do whatever else you need to do
// ...
return true;
}