Logo Hardware.com.br
Demarchi_
Demarchi_ Membro Junior Registrado
76 Mensagens 0 Curtidas

[Dúvida] Apontadores/Registradores em C

#1 Por Demarchi_ 04/11/2011 - 13:34
Boa Tarde Caros, segue o código

[code=rich]
#include

int main()
{
int i;
int count;

printf("Digite quantas vezes deseja visualizar Hello World/n");
scanf("%d", &count);

for(i=0; i {
printf("Hello World\n");
}
}
[/code]

Com o código acima, o programa executa normalmente, porém


scanf("%d", &count);


Quando Executo sem o "&" na variável count, o seguinte erro aconteçe.

[code=rich]
debian:/home/teste# gcc teste.c
debian:/home/teste# ./a.out
Digite quantas vezes deseja visualizar Hello World
3
Falha de segmentação
debian:/home/teste#
[/code]

Isso acontece independente do número de vezes que eu peça para repetir.
Falha na segmentação, o que pode ser, estou sem o livro que estou usando aqui, mas acho que é algo com registradores ou apontadores. algo do tipo...

Obrigado.
OS: Windows 7 / Debian Squeeze / Backtrack 5
Processador: AMD Phenom II x2 3.20 (x4 B50)
Memória: 2 GB DDR3 1066 Mhz Kingston
VGA: XFX ATI HD 5550 1 GB (low profile)
Fonte: Casemall 500WR
Monitor: SAMSUNG Sync 21"
Jogolos: adeus.gif Nenhum, só estudando
tpcvasco
tpcvasco General de Pijama Registrado
2.9K Mensagens 330 Curtidas
#3 Por tpcvasco
04/11/2011 - 15:02
51l3n7 disse:


Se vc pega somente o valor, vc não pode mudar o endereço, vc obtem apenas o q está lá mas não pode alterar. Passa o endereço serve para a função saber onde alterar.
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
Demarchi_
Demarchi_ Membro Junior Registrado
76 Mensagens 0 Curtidas
#6 Por Demarchi_
04/11/2011 - 20:52
Humm, entendi, no caso a função scanf pede o endereço de memória de count, não o valor, o valor pra ela é = a nada.

Poxa que interessante, obrigado tpcvasco e 51l3n7
OS: Windows 7 / Debian Squeeze / Backtrack 5
Processador: AMD Phenom II x2 3.20 (x4 B50)
Memória: 2 GB DDR3 1066 Mhz Kingston
VGA: XFX ATI HD 5550 1 GB (low profile)
Fonte: Casemall 500WR
Monitor: SAMSUNG Sync 21"
Jogolos: adeus.gif Nenhum, só estudando
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal