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.