Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida no Ex. 4 da Aula 5 - Ponteiros e Endereços de Memória

quando eu devo colocar os colchetes [] no array ou quando eu nao devo colocar? No exercicio em questão eu tinha colocado o parametro "nums" com colchetes "nums[i]", mas na resposta apareceu sem eles..

o restante estava igual.

1 resposta
solução!

Oi Andre, tudo bem?

Quando desejamos receber arrays como parâmetros em nossas funções, é válido declarar com os colchetes, e também é válido dizer que espera receber um ponteiro, pois quando trabalhamos com arrays, recebemos o endereço de memória do primeiro elemento, ou seja, não ocorre passagem por cópia.

A três forma a seguir compilam e funcionam como esperado:

int soma(int* nums, int tamanho) { // espera receber um ponteiro
    // código da função aqui
}

int soma(int nums[], int tamanho) { // utilizando os colchetes ([])
    // código da função aqui
}

int soma(int nums[3], int tamanho) { // utilizando os colchetes ([]) e passando um número dentro deles
    // código da função aqui
}

Perceba que mesmo no caso em que utilizamos int nums[3], é também necessário passar o tamanho do array (int tamanho) para que possamos saber o tamanho do array.

Nesse caso o número 3 dentro dos colchetes não significa nada, pois o que será passado para a função soma será o endereço de memória do primeiro elemento, como explicado em algum momento durante o curso.

Faz sentido? Se a dúvida persistir avisa aqui que vamos interagindo!

Abraço.