Salve a tutti, ho creato questo codice :
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?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; }
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.

Rispondi quotando