ragazzi ho un problema, nn riesco a far funzionare questo programma che usa la funzione malloc..
la compilazione nn da errori ma all'eseguzione, una volta inseriti i valori nella memoria, chiama il sottoprogramma e va in crash
esce un errore di windows dicendo che il programma ha smesso di funzionare
immagino che l'errore sia dato xk il programma va a toccare memoria che nn deve.. solo che nn so cm risolverlo
Codice:
//funzione ordina che riceve un int*, essa orina i numeri in ordine crescente
//programma che inserisce il numero di interi e gli interi,stampa i numeri,chiama ordina e stampa i numeri
#include<stdio.h>
#include<malloc.h>
void ordina(int*,int);
int main(int argc,char* argv[]){
int lenght,i;
int* vet;
scanf("%d",&lenght);
if((vet=(int*)malloc(lenght*sizeof(int)))!=NULL){
for(i=0;i<lenght;i++)
scanf("%d",vet+i);
ordina(vet,lenght);
for(i=0;i<lenght;i++)
printf("%d ",*(vet+i));
}
else
printf("\nerrore malloc");
return 0;
}
void ordina(int* vet,int lenght){
int temp,i,j;
for(i=0;i<lenght-1;i++){
for(j=i+1;j<lenght;i++)
if(*(vet+i)>*(vet+j)){
temp=*(vet+i);
*(vet+i)=*(vet+j);
*(vet+j)=temp;
}
}
}