Найти минимальный элемент массива Си

Нужно найти минимальный элемент в массива и вывести его. Начал изучать Си и что не получается. Ошибся, но где?

#include <stdio.h>
#include <windows.h>

int findMin(int *arr)
{
    int count = sizeof(arr) / sizeof(int);
    int min = INT_MAX;
    for(int i = 0; i < count; i++)
    {
        if (arr[i] < min)
        {
            min = arr[i];
        }
    }
    return min;
}


int main(void)
{
    SetConsoleCP(CP_UTF8);
    SetConsoleOutputCP(CP_UTF8);

    int arr[] = {1,2,3,4,5,6,7,8,9,0,-1,-5}; 
    
    printf("Наименьшее число массива :%i", findMin(arr));

    return 0;
}

Ответы (1 шт):

Автор решения: citn

Когда вы передаете массив в функцию, то он не сохраняет информацию о его размере, и sizeof(arr) вернет просто размер указателя, а не размер самого массива.

int findMin(int *arr, int size)
{
    int min = INT_MAX;
    for(int i = 0; i < size; i++)
    {
        if (arr[i] < min)
        {
            min = arr[i];
        }
    }
    return min;
}

int main(void)
{
    int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -1, -5}; 
    int size = sizeof(arr) / sizeof(arr[0]);
    ...
}
→ Ссылка