[Resolvido] Ponteiro retornando valor inesperado
Olá galera, bom dia !
Estou desenvolvendo um trabalho para faculdade onde armazeno e exibo os resultados de ordenação de diversos algoritmos, sendo numero de comparações, trocas e tempo.
Tenho tudo pronto e escrito, ou seja, o escopo do trabalho esta Ok, falta implementar o resto dos algoritmos.
Consegui quase tudo com a ajuda de colegas de outro fórum, porém estou com um erro que não consigo soluciona-lo, se alguém puder me dar uma ideia do que esta acontecendo fico grato.
1- Aqui eu tenho minha lista global de registros que ira armazenar os resultados de ordenação:
typedef struct{
int numcomp;
int numtrocas = 0;
}ESTATISTICAS;
2- Como exemplo o algoritmo bubble sort recebendo os valores por referencia:
void bubbleSort(int vet[], int num, ESTATISTICAS* estatisticas){
int i, continua, aux, fim = num;
do{
continua = 0;
for(i = 0; i < fim -1; i++ ){
estatisticas->numcomp++;
if(vet* > vet[i+1]){*
*
aux = vet**;*
*
vet** = vet[i+1];*
*
vet[i+1] = aux;*
*
estatisticas->numtrocas++;*
*
continua = 1;*
*
}*
*
}
*
*
**
fim--;
*
*
**
}while(continua != 0);*
*
}
*
*
**
*
*
**
*
*
**
3- e aqui a declaração da lista e a chamada da função de ordenação com a exibição dos valores armazenados:
*
*
**
*
*
**
int ptr;
*
ptr = geraVetor(vetor1);*
*
//imprimeVetor(ptr, vetor1);
*
*
**
*
*
*
*
ESTATISTICAS estatisticas = (ESTATISTICAS) malloc(sizeof(ESTATISTICAS)); *
*
*
*
clock_t start, end;*
*
*
*
start = clock();*
*
bubbleSort(ptr,vetor1, estatisticas);*
*
end = clock();
*
*
**
printf("\n\nTROCAS: %d", estatisticas->numcomp);
*
*
**
printf("\n\nTROCAS: %d", estatisticas->numtrocas);
*
*
**
*
*
**
4- O erro consiste em: quando compilo meu programa tudo esta ok, porém o valor retornado pela variável numcomp esta muito além do numero de comparações, se parecendo mais com um endereço de memoria. algo do tipo: 348219. Já a variável numtrocas o valor é retornado normalmente apos os incrementos ++;
*
*
**
*
*
**
*
*
**
Aguardo ajuda, de já agradeço.
*
*
**
*
*
**
*
Discussão (1)
Carregando comentários...