Inteiro no gcc usa 4 bytes e n�o 2, de maneira que o limite que im inteiro
consegue representar � at� uns 2 bilh�es e l� vai pedrada, positivo e
negativo. O que t� rolando � que quando i chega em 2 bilh�es e alguma coisa,
que � o limite positivo representado por um inteiro, e vc incrementa o i,
ele "volta" pro limite negativo representado por um inteiro, que � -2
bilh�es e alguma coisa. Da�, �ndice negativo num array d� falha de
segmenta��o.

Falou,
Victor

----- Original Message -----
From: "Jorge Arnemann" <[EMAIL PROTECTED]>
To: "Lista de Usuarios do Slackware Linux" <[EMAIL PROTECTED]>
Sent: Monday, December 08, 2003 10:28 AM
Subject: Re: [slack-users] int vet[10^7]


Ol�.

A vari�vel i est� definida como interia, e se n�o me engano ela ocupa 2
bytes, insuficiente para o incremento que vc faz no la�o for.

Tenta longint, acho que s�o 4 bytes...

Espero que tenha ajudado...
100+
JorgeR

----- Original Message -----
From: "Rodrigo Moreira" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Saturday, December 06, 2003 12:28 AM
Subject: [slack-users] int vet[10^7]


> Bom dia,
>
> Eu sei que aqui nao e uma lista de programacao mas
> estou desesperado quanto a isto.
> O problema esta nesse programinha:
>
> #include<stdio.h>
> #define tam 10000000
> main(){
> int vet[tam], i;
> for(i=0;i<tam;i++) vet[i]=1;
> }
>
> Ele compila sem erros mas quando tento executar da
> falha de segmentacao.
> Quando troco o 10^7 por 10^6 fuciona sem problemas.
>
> Alguem sabe o que pode ser? algum limite do gcc?
> do linux? do processador?
>
> Minha maquina: Pentium 4, 1GB RAM, kernel 2.4.22
> gcc 3.2.3
>
> Obrigado,
>
> --
> Rodrigo Moreira [EMAIL PROTECTED]
> UFPE
> Departamento de Fisica
>
>

_______________________________________________
slack-users mailing list
[EMAIL PROTECTED]
http://www.linuxmag.com.br/mailman/listinfo/slack-users

Responder a