| 12
 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