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();
}
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
-
aie personne pour éclairer ma lanterne?
merci -
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;
}
}
}