• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Vnepomuceno

Cálculo da média de vector

7 mensagens neste tópico

Boas, ao fazer o cálculo da média de um vector através do uso de ponteiros deu-me o erro "Segmentation fault (core dumped)":

int mediaVector(int *vector)
{
int *pointer = vector;
int num = 0, den = (strlen2(pointer) - 1);

while(*pointer != '-1')
{
	num += *pointer;
	pointer++;
}

printf("%d %d", &num, &den);
}

int main()
{
int vector[] = {1, 2, 3, 4, 5, -1};

mediaVector(vector);

return 0;
}

Podem-me ajudar a resover o problema?

Obrigado :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

strlen2(pointer)

O erro é aqui, porque estás a pedir o comprimento, não de uma string, mas de um apontador! (i think...)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não, já estive a fazer uns testes com umas modificações, e não é por aí...

Até porque faço:

int *pointer = vector;

e para qualquer vector:

vector = &vector[0]

logo no strlen() está um endereço de um vector, que é o mesmo que meteres lá o nome do vector, pois o nome de um vector corresponde ao endereço do seu primeiro elemento...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já sei, estás a comparar o valor do pointer (int) com um char '-1'. Tira as plicas e já funciona.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eish, nem reparei nisso. Era mesmo esse o problema.

Obrigado pela ajuda :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora