Info pour réalloc en c

Bonjour,
les amis

voilà j'aurais voulu savoir comment faire mon programme pour avoir tous en dynamique.
c'est a dire: je voudrais que le programme indique: taper sur "e" pour un nouvel éléments dans le tableau ou bien taper "t" pour un nouveau tableau. tout cela avec des pointeurs de pointeur.

je donne mon code qui tourne seulement avec du statique.

merci à vous de m'aider

#include <stdio.h>
#include <conio.h>
#include <process.h>
#include <alloc.h>

void main(void)
{
int Nbtab,Ntab,Nelem; //nbre tab - indice déplacement tab - element

int *ptaille, **pptab; // génère le tableau de mémorisation des taille - le tableau de pointeurs

clrscr();
printf("Nombre de tableaux a encoder: ");
scanf("%d",&Nbtab); getchar();
if(!(ptaille = (int *)malloc(Nbtab*sizeof(int)))) exit(0);
if(!(pptab = (int **) malloc(Nbtab*sizeof(int *)))) exit(0);

for (Ntab=0;Ntab<Nbtab;Ntab++)
{
printf("\nTab %d\n Nombre d'elements: ",Ntab+1);
scanf("%d",&ptaille[Ntab]); getchar();
if(!(pptab[Ntab] = (int *) malloc(ptaille[Ntab]*sizeof(int)))) exit(0);

for(Nelem=0;Nelem<ptaille[Ntab];Nelem++)
{
printf("Introduction de l'element %d: ",Nelem);
//scanf("%d",&pptab[Ntab][Nelem]); getchar();
//scanf("%d",&(*(pptab+Ntab))[Nelem]); getchar();
scanf("%d",*(pptab+Ntab)+Nelem); getchar();
}
}

for (Ntab=0;Ntab<Nbtab;Ntab++)
{
printf("\nTab %d\n Nombre d'elements: %d\n",Ntab+1,ptaille[Ntab]);

for(Nelem=0;Nelem<ptaille[Ntab];Nelem++)
{
printf("\nAffichage de l'element %d: %d",Nelem,pptab[Ntab][Nelem]);
}
}

getch();

}
Configuration: Windows XP
Internet Explorer 7.0

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. voilà le début de mes essais:

    mais je ne comprend pas comment se passe le réalloc

    #include <stdio.h>
    #include <conio.h>
    #include <process.h>
    #include <alloc.h>

    void main(void)
    {
    //int Nbtab,Ntab,nelem; //nbre tab - indice déplacement tab - element
    int nelem=0, indtab=0,Ntab=0,i=0;
    int **pptab ;

    if(!(pptab =(int **)malloc(sizeof(int* )))) exit(0);
    for(i=0;i<100;i++)
    {
    tabl: printf("tableau n: %d\n ",Ntab+1);

    scan: scanf("%d",&pptab[indtab][nelem]); getchar();

    bibi: switch(pptab[indtab][nelem])
    {
    case 65: indtab = realloc( pptab, sizeof(int) );
    nelem++;
    goto scan;
    case 74: pptab =(int **)realloc (pptab,sizeof(int));
    indtab++;
    Ntab++;
    goto tabl;

    default: goto bibi;
    }
    }

    }