Olá Douglas,
existem alguns conceitos aqui que são um pouquinho mais complicados do que parecem e exigem que a gente passe com mais calma por eles (eles serão vistos com todos os detalhes na próxima atividade: "Ponteiros e Endereços de Memória").
Os detalhes são esses aqui:
1 - A primeira linha da função deve ser:
int soma(int numeros[]){
e não
int soma(int numeros[10]){
Pode parecer estranho que a função não saiba o tamanho do vetor, mas é assim mesmo, você não deve passar o vetor inteiro, copiando elemento a elemento, mas apenas uma indicação de onde começa o vetor, podendo assim percorrê-lo do jeito que quiser.
2 - A linha da chamada da função deve ser:
soma(numeros);
e não
soma(numeros[10]);
pois o identificador numeros
é o cara que tem a indicação pra onde começa o vetor. Quando você usa numeros[10]
é como se ele tivesse pegando a posição de início do vetor (indicada pelo "numeros") e pegando 10 elementos pra frente, deixando você em uma posição da memória que não foi reservada e, por isso, dando o erro de Falha de Segmentação que você deve estar recebendo.
Se essas duas coisas parecerem estranhas agora, não se preocupe. Na próxima aula elas já serão explicadas melhor.
Depois de alterar essas duas coisas, seu programa vai funcionar, mas ainda vai estar com um errinho. Esse daí eu deixo pra você resolver, afinal ler as mensagens que o compilador nos dá e procurar erros no código é uma parte importante da programação! :)