Salve a tutti, ho creato questo codice :
codice:
#include <stdio.h>
#include <malloc.h>
int main(){
int vettore[]={3,6,4,5,1,2,3,5};
int *nuovo;
int k=0,j,n=0 ,i;
nuovo=(int*)malloc(sizeof(int));
for(i=0;i<8;i++){
n=0;
for(j=0;j<i;j++){
if(nuovo[j]==vettore[i]){
n++;
}
}
if(n==0){
nuovo[k]=vettore[i];
k++;
}
}
printf("Vettore iniziale:");
for(i=0;i<8;i++){
printf(" %d ",vettore[i]);
}
printf("\n\nVettore senza ripetizioni:");
for(i=0;i<k;i++){
printf(" %d ",nuovo[i]);
}
scanf("%d");
return 0;
}
la mia domanda è: la funziona malloc non dovrebbe allocarmi solo 1 posto? perchè riesce ad allocarmeli tutti e quindi a far funzionare correttamente il programma?
PS: altre domande, perchè se metto la funzione dentro il for allocando per ogni elemento un'altro spazio, il programma va in crash? cosa combino nella memoria?
Grazie a tutti per eventuali risposte.