Can anyone explain to me why I give free
in pontaux
the Windows terminal stops responding? And why when I pontmaior
my result comes as memory garbage?
The function returns a pointer to the largest value of a vector.
Code:
#include <stdio.h>
#include <stdlib.h>
int* retornamaior (int *vetor, int tamanho) {
int i, maior = vetor[0];
for (i=0; i<tamanho; i++) {
if (vetor[i]>=maior)
maior = vetor[i];
}
int *pontmaior = &maior;
return pontmaior;
}
int main (int argc, char *argv[]) {
int *vetor, tamanho, i;
printf ("Digite o tamanho da sequência: ");
scanf ("%d", &tamanho);
vetor = (int*)malloc(tamanho*sizeof(int));
printf ("Digite a sequência: ");
for (i=0; i<tamanho; i++)
scanf ("%d", &vetor[i]);
int *pontaux = retornamaior (vetor,tamanho);
printf ("Maior: %d\n", *pontaux);
free (vetor);
return 0;
}