Usare correttamente un puntatore come vettore

di Anonimizzato8544 il
3 risposte
Salve raga ho un problema devo usare un puntatore per acquisire un numero n di elementi facendolo diventare un vettore vero e proprio ma il mio codice viene compilato correttamente ma da 1 output sbagliatissimo vi posto il sorgente
p.s. non badate al fatto che i while hanno già una condizione di fine ciclo stabilita a priori... mi serviva solo per fai i vari test



#include <stdio.h>
#include <stdlib.h>

int main()
{
    int *vet,i;
    
    
    i=0;
    
    
    while(i!=4)
    {
    
        vet=(int*)malloc(sizeof(int));
        printf("inserisci dato\n");
        scanf("%d",&vet[i]);
    
    
    
    
        i++;
    }
    
    
    


i=0;
while(i!=4)
{
    printf("%d\n",*vet++);
    i++;
}

}

3 Risposte

  • vet=(int*)malloc(sizeof(int));
    così perdi l'allocazione precedente. Se devi far crescere il vettore ad ogni iterazione considera realloc
  • Realoc è troppo costosa al meno così dice sempre il mio prof
  • Penso che sia l'unica soluzione, almeno per me. Magari non allocando un elemento per volta ma un certo blocco di elementi, così da fare poche realloc.

    Oppure vuoi fare continue free e malloc (altrettanto costose).
Devi accedere o registrarti per scrivere nel forum
3 risposte