*** stack smashing detected *** Aborted (core dumped) [RESOLVIDO]

1. *** stack smashing detected *** Aborted (core dumped) [RESOLVIDO]

mateus da silva
metalicarus1

(usa Ubuntu)

Enviado em 22/08/2017 - 12:01h

Olá, amigos!
Estou com uma grande duvida na linguagem C. Na verdade, creio eu, que o código esteja certo, o problema é na exibição dos resultados.
O enunciado da questão é a seguinte:

Simule, através de números aleatórios (entre 1 e 6), o lançamento de um dado mil
vezes. No final do sorteio, mostre na tela:
a) Quantas vezes cada número foi sorteado;
b) A porcentagem que cada número representa em relação ao total.

E o meu código, que acredito estar correto, é esse aqui:


#include <stdio.h>


main(){
srand(time(NULL));
int vet[6];
int i;

for(i=0;i<6;i++){
vet[i] = 0;
}

for(i=0;i<1000;i++){
int x;
x = rand()%6+1;
if(x==1){
vet[1]++;
}
if(x==2){
vet[2]++;
}
if(x==3){
vet[3]++;
}
if(x==4){
vet[4]++;
}
if(x==5){
vet[5]++;
}
if(x==6){
vet[6]++;
}
}
for(i=0;i<7;i++){
if(i==0){
}
else{
printf("\n%d: %d",i, vet[i]);
}
}


}


O problema é que quando compilo o terminal me retorna a seguinte mensagem de erro:
*** stack smashing detected ***: ./L3_EX4 terminated - Aborted (core dumped)

O que pode ser?


  


2. MELHOR RESPOSTA

Uilian Ries
uilianries

(usa Linux Mint)

Enviado em 22/08/2017 - 12:22h

Arrays começam na posição 0, a posição vet[6] é inválida, você terá como válido, as posições vec[0..5]

3. RESOLVIDO

mateus da silva
metalicarus1

(usa Ubuntu)

Enviado em 22/08/2017 - 12:09h

Encontrei o erro no meu código. Acontece que eu estava imprimindo a 7 posição do vetor (no caso o índice 6), só que não havia declarado um vetor com esse tamanho, daí o erro.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts