[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux] Re: aide en c++



Je recopie l'enoncé, comme on dirait que je m'exprime mal ;)

Char *t[] est un tableau de pointeurs sur char local a la fonction
main.
...
On veut : 
- ...
...
- Une fonction qui modifie les elements du tableau t comme suit:
remplacer l'adresse de la chaine par l'adresse de la sous chaine
commencant par un caractere 'digit'. Proposer une solution avec le
formalisme pointeur et une autre avec le formalisme reference.
...

Cedric
On Tue, Sep 11, 2001 at 10:27:20PM +0200, Michael Stilmant wrote:
> manifestement je crois qu'il en a pas fini
> 
> La technique de transmission des paramètres non pas par valeur mais par
> adresse est appelée "passage par référence".
> 
> alors j'ai du mal avec ta phrase suivante:
> 
> "La seule différence, c'est le passage des paramètres, une doit être par
> pointeur et l'autre par référence."
> 
> a tu l'énoncé d'origine ?
> 
> > -----Message d'origine-----
> > De : Cedric De Wilde [mailto:daique@tiscalinet.be]
> > Envoyé : mardi 11 septembre 2001 22:18
> > À : linux@lists.unixtech.be
> > Objet : [linux] Re: aide en c++
> > 
> > 
> > Non, ca je sais faire mais le prof veut que l'on passe les parametres
> > par references et pas par pointeur. Il veut 2 fonctions qui 
> > scannent les
> > chaines et qui modifient le pointeur de départ par l'add du 
> > premier chiffre
> > rencontré. La seule difference, c'est le passæge des parametres, une
> > doit etre par pointeur et l'autre par réference. Il nous a donné cet
> > exercice pour voir sion avait compris son explication sur les
> > references, personne ne l'a réussi ;)
> > 
> > Voila celle par pointeur:
> > 
> > void modif1(char **t)
> > {
> > 	int i = 0;
> > 	int x=0;
> > 	while(**(t+i)){
> > 		for( x = 0 ;*(*(t+i)+x);x++){
> > 			if (isdigit(*(*(t+i)+x))){
> > 				*(t+i)=*(t+i)+x;
> > 				break;
> > 			}
> > 		}
> > 		i++;
> > 	}
> > }
> > 
> > Cedric
> > 
> > On Tue, Sep 11, 2001 at 09:07:56PM +0200, Michael Stilmant wrote:
> > > 
> > > > Salut tlm,
> > > > 
> > > > Est ce que quelqu'un pourrait m'expliquer comment passer 
> > par réference
> > > > un tableau de pointeur sur chaine? 
> > > > Par exemple:         
> > > > 
> > > > 
> > > > 
> > > > J'arrive a passer une des chaines de caractere a l'autre fonction,
> > > 
> > > char *t[5] = {
> > >  	"un",
> > >  	"de2x",
> > >  	"3tr0is",
> > >  	"quatre445",
> > >  	""
> > >  };
> > > 
> > > 
> > > void foo(char** tableau_address)
> > > {
> > > 	char* chaine1,*chaine2,*chaine3;
> > > 	char** prx;	
> > > 
> > > 	prx =  tableau_address;
> > > 	chaine1 = *prx;
> > > 	prx++;
> > > 	chaine2 = *prx;
> > > 	prx++;
> > > 	chaine3 = *prx;
> > > 	
> > > 	printf("%s \n %s \n %s",chaine1,chaine2,chaine3);
> > > }
> > > 
> > > void foo_autre(char** tableau_address)
> > > {
> > > 	char* chaine1,*chaine2,*chaine3;
> > > 
> > > 	chaine1 = tableau_address[0];
> > > 	chaine2 = tableau_address[1];
> > > 	chaine3 = tableau_address[2];
> > > 	
> > > 	printf("%s \n %s \n %s \n",chaine1,chaine2,chaine3);
> > > }
> > > 
> > > main()
> > > {
> > > 	foo(t);
> > > }
> > > 
> > > [ Soyez précis dans vos sujets svp afin de déterminer directement  ]
> > > [ le type de demande...                                            ]
> > > [ Pour vous (dés)inscrire, aller sur http://unixtech.be/ml.php     ]
> > > [ Archives de la mailing list: http://archives.unixtech.be/linux/  ]
> > > [ http://unixtech.be              Contact: listmaster@unixtech.be  ]
> > 
> > [ Soyez précis dans vos sujets svp afin de déterminer directement  ]
> > [ le type de demande...                                            ]
> > [ Pour vous (dés)inscrire, aller sur http://unixtech.be/ml.php     ]
> > [ Archives de la mailing list: http://archives.unixtech.be/linux/  ]
> > [ http://unixtech.be              Contact: listmaster@unixtech.be  ]
> > 
> 
> [ Soyez précis dans vos sujets svp afin de déterminer directement  ]
> [ le type de demande...                                            ]
> [ Pour vous (dés)inscrire, aller sur http://unixtech.be/ml.php     ]
> [ Archives de la mailing list: http://archives.unixtech.be/linux/  ]
> [ http://unixtech.be              Contact: listmaster@unixtech.be  ]

[ Soyez précis dans vos sujets svp afin de déterminer directement  ]
[ le type de demande...                                            ]
[ Pour vous (dés)inscrire, aller sur http://unixtech.be/ml.php     ]
[ Archives de la mailing list: http://archives.unixtech.be/linux/  ]
[ http://unixtech.be              Contact: listmaster@unixtech.be  ]