1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
#include <duma.h>
char **inclure ( char **storage, long length, char *newitem )
{
char **resul;
if ( ! ( resul=realloc ( ( *storage ), ( length+1 ) *sizeof ( char* ) ) ) ) //je reserve un espace mémoire d'une case en plus
{
printf ( "Erreur lors de l'allocation mémoire\n" );
exit ( -1 );
}
else
{
resul[length]=newitem;//je place l'élément à rajouter dans l'espace mémoire à la fin
return resul;
}
}
char **supprime ( char **storage, long length, long *num )
{
char **resul;
long n;
if ( ! ( resul=realloc ( ( *storage ), ( length-1 ) *sizeof ( char* ) ) ) ) //je reserve un espace mémoire d'une case en moins
{
printf ( "Erreur lors de l'allocation mémoire\n" );
exit ( -1 );
}
for(n=(*num);n<length-1;n++)
resul[n]=storage[n+1];
return resul;
}
void lecture ( char **storage, long length )
{
long n;
for(n=0;n<length;n++)// je me place dans chaque case de mon tableau et je lis le mot associé
printf("%s ",(*storage)[n]);
}
int main ( int argc, char *argv[] )
{
printf("1");//pour tester si cela bloque avant
char **storage=0;
long length=2;
printf("1");
long *index; *index=2;
char *string1="hello";
char *string2="world";
printf("1");
storage=inclure(storage, length, string1);
printf("2");
storage=inclure(storage, (length+1),string2);
lecture(storage, 2);
storage=supprime(storage, length, index);
free(*storage);
return EXIT_SUCCESS;
} |
Partager