Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

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

solução

Olá Flávio, quando você faz:

total = soma(numeros[3]);

Você está enviando um ponteiro para sua função soma, que está esperando um inteiro, veja só:

int soma(int numeros[3] ){
    //Sua função soma
}

Como este exercício é para praticar ponteiros sugiro que você construa uma função que receba um ponteiro para o seu array de números, e um inteiro com o tamanho deste array.

Algo neste estilo:

int soma(int* numeros,int tam ){
    //Executa a soma...
}

Tenta fazer por esse caminho!

3 respostas

Ja tentei mais não deu certo, tem jeito de você mandar seu código inteiro para eu comparar com meu.

Descobri o problema, valeu.

Acontece que eu estava pondo assim:

total = soma( numeros[3]);

enquanto o correto assim:

total = soma( numeros);

Oque tem de errado no meu codigo?

#include <stdio.h>

int soma(int numeros[3] ){


    int total = 0;
    int i;
    for(i = 0; i < 2; i++) {

        total =+ numeros[i];


    }
    return total;
}

int main () {


    int numeros[3];
    numeros[0] = 10;
    numeros[1] = 20;
    numeros[2] = 30;

    int total;
    total = soma(numeros[3]);



}