comment reduire ce bout de code ? [C] - C++ - Programmation
Marsh Posté le 08-05-2002 à 18:44:59
int put_case(t_cases *cas)
{
if (!(cas->tbl_1[1]) || !(cas->tbl_2[1]) || !(cas->tbl_3[1]))
printf("coucou" );
}
Marsh Posté le 08-05-2002 à 18:46:35
Mais ta fonction n'est pas correct ... si tu la déclares comme ça : int put_case(t_cases *cas) tu devrais lui faire retourner un INT, sinon dans ton cas tu devrais la déclarer comme ça : void put_case(t_cases *cas).
Marsh Posté le 08-05-2002 à 19:29:17
Olivier51 a écrit a écrit : int put_case(t_cases *cas) { if (!(cas->tbl_1[1]) || !(cas->tbl_2[1]) || !(cas->tbl_3[1])) printf("coucou" ); } |
je lattendais celle la
jai simplifie le code de maniere a pouvoir le sortir du contexte
c'est pour cela ke la fonction ne renvoie pas un int
jaimmerrais utiliser un tableau de pointeur vers mon tableau
mais i arrive po
Marsh Posté le 08-05-2002 à 23:02:45
Olivier51 a écrit a écrit : J'ai rien compris ... |
Marsh Posté le 09-05-2002 à 01:14:24
si j'ai bien compris, cas->tbl_X est un tableau d'entiers (au pif, vu la comparaison)
ca devrait donner ca, non ?
int* tmp[3] = {...}
Marsh Posté le 09-05-2002 à 01:26:23
lorill a écrit a écrit : si j'ai bien compris, cas->tbl_X est un tableau d'entiers (au pif, vu la comparaison) ca devrait donner ca, non ? int* tmp[3] = {...} |
oui c'est un tbl d'entier mais ca gene pas kil soit dans une structure ?
et jai le tdoit de faire
tmp[i][3]
au lieu de
cas->tbl_i[3]
(si dans tmp[i] il y a cas->tbl_i)
Marsh Posté le 09-05-2002 à 01:35:16
en quoi ca generait ?
un tableau est un pointeur.
cas->tbl_i est donc un pointeur vers la premiere valeur du tableau
quand tu fais tmp[i] = cas->tbl_i, tu recopie le pointeur tbl_i valeur dans tmp[i]. La structure n'intervient pas la dedans.
Marsh Posté le 09-05-2002 à 01:52:51
pkoi tu crées pas un structure cas contenant la liste de tout t'es cas, et quand suite tu prends à chaque fois l'element + 1 ?
du style :
struct List_cas {
t_cases *tbl_1;
t_cases *tbl_2;
t_cases *tbl_3;
};
List_cas *list_cas = NULL;
/* initialisation */
temp = list_cas.tbl_1;
for (i=1; i<=3; i++) {
if ((int) (*temp)[1] == 0)
printf("coucou" );
temp++;
}
Ceci dit je dis pe une connerie
[jfdsdjhfuetppo]--Message édité par joce le 09-05-2002 à 01:57:51--[/jfdsdjhfuetppo]
Marsh Posté le 09-05-2002 à 12:38:26
joce a écrit a écrit : pkoi tu crées pas un structure cas contenant la liste de tout t'es cas, et quand suite tu prends à chaque fois l'element + 1 ? du style : struct List_cas { t_cases *tbl_1; t_cases *tbl_2; t_cases *tbl_3; }; List_cas *list_cas = NULL; /* initialisation */ temp = list_cas.tbl_1; for (i=1; i<=3; i++) { if ((int) (*temp)[1] == 0) printf("coucou" ); temp++; } Ceci dit je dis pe une connerie |
en fiat c'est une unique structure avec avec 6 champs
elle a cette geule
typedef struct s_case
{
int tbl_0[4];
int tbl_1[4];
int tbl_2[4];
int tbl_3[4];
int tbl_4[4];
int tbl_5[4];
int tbl_6[4];
}t_case;
et a certains moment je suis oblige de faire les meme traitement sur 4 de ces tableaux
donc au lieux de faire n fonction ou seulemnt
le case->tbl_x change je voulais les regrouper en une boucle for
economisant ainsi des fonctions inutiles
donc faut ke je puisse mettre les
case->tbl_x dans un tableau affin de pouvoir faire ca nikel
Marsh Posté le 08-05-2002 à 18:09:41
jai ca comme bout de code
int put_case(t_cases *cas)
{
if (cas->tbl_1[1]== 0)
printf("coucou" );
if (cas->tbl_2[1] == 0)
printf("coucou" );
if(cas->tbl_3[1] == 0)
printf("coucou" );
}
je voudrais le transformer en un truc de ce style
int put_case(t_cases *cas)
{
int i;
tmp[3] = { <<<je met koi comme type ?? t_cases tmp[3] ?
cas->tbl_1,
cas->tbl_2,
cas->tbl_3
};
for (i=0;i <= 2; i++)
if(tmp[i][1] == 0) <<< un truc de ce genre est ce possible ? ou faut faire un tmp[i] avec dans le tmp[i] <==> cas->tbl_1[1]
printf("coucou" );
}
voila A+