(которая просто заполняет массив значениями) не правильная
void Full(double * arr, int n)
{
for (int i = 0; i < n; i++)
arr[i] = Function(i);
//Function - это просто функция которое принимает число и делает некоторые преобразования
}
Мне сказали что функция не правильная, потому что ничего не возвращает, и сказали добавить double* и возвращать массив, но в итоге в main просто нужно писать Full(arr, 10). Объясните зачем там нужен double* если функция просто заполняет массив?
Возможно, от тебя хотят, чтобы можно было писать Full(Full(arr, n), n)
Может это правила хорошего тона?
Обычно в С если нужно что-то одно вернуть, то это возвращают. А если нужно допустим на основе данных что-то сделать и допустим в массив какой-то записать, то делают так: int print_and_count(const char* str, int* count_output) { printf(str); int count = 0; if(strlen(str) > 1024) return 24; // код ошибки например for(int i = 0; i < strlen(str); ++i) if(str[i] > 0) ++count; *count_output += count return 0; // код успешного выполнения }
Почему 0 код успешного
ну в CURL том же пишут if(recv_что-тотам != NULL) { делаем что-то с ошибкой }
То есть если тебе нужно что-то сделать то можно данные записать в указатель переданный в качестве параметра функции. А в возвращаемом значении что-то другое вернуть допустим код ошибки. Но для твоего примера где надо массив изменить просто, я не знаю что от тебя ещё хотят. Передал массив (указатель на начало), передал размер, изменил массив по указателю. Всё отлично вроде. @ololol666jg
Обсуждают сегодня