salut tt le monde

je souhaite créer un tableau dont le nombre de cases n'est pas connu au depart:
solution: Pointeur sans doute
alors j'ai fait:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
typedef int *ptr_int;
ptr_int  tab;
je suppose qu'au depart je n'ai besoin que d'une seule case :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
tab=malloc(1*sizeof(int));
je souhaitrerai augmenter la taille de tab chaque fois que l'utilisateur veut saisir d'autres valeurs:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 int n=0;
 while(c!=2)
  {
  printf(" entrer une valeur");
  scanf("%d",&tab[n]);
   n++;
 
  printf("Ajouter d'autre valeur ? 1:Oui  2:Non");
  scanf("%d",&c);
 
    if (c==1) 
    {
     // si oui :je demande plus d'espace memoire pour l'utilisateur
     tab=malloc(n+1*sizeof(int));
     }
   }
apres la saisie, et quand j'affiche le contenu de tab je trouve que quelques valeurs que j'ai introduit ont été modifiées.

aidez moi pour augmenter la taille du tableau sans rencontrer ce genre d'erreurs.
Merci.