|
|
|
|
SofLS, le jeudi 24 juillet 2008 à 15:49:46Configuration: Windows XP Internet Explorer 7.0
bonjour c très mauvais de remplir un tableau comme çela voit une autre méthode |
essai :
const tab T1={...}; tab T2 = (tab){...}; int T3[10][10]=(int**){...}; const int T4[10][10]={...};// Celui là, au moins devrais fonctionné. Salutation ! avant je croyais, maintenant je suis fixé.Jésus Christ Char Snipeur |
Wouah ! Quelle rapidité!^^
Pourquoi c'est mauvais? Je ne voies pas comment faire autrement, il n'y a aucune logique dans l'affectation des nombre du tableau, c'est une grille de jeu. je peux pas faire un truc du genre : for i for j tab1[i][j]=? A moins qu'il y ai une méthode que je ne connaisse pas? |
Si les tableau ne sont pas amener à changer, c'est une méthode que je ne trouve pas mauvaise.
Par contre, défini tes tableau comme étant constant. Salutation ! avant je croyais, maintenant je suis fixé.Jésus Christ Char Snipeur |
J'avais pas vu ta réponse Char Sniper,
j'ai testé 1,2 et 4 marchent. En effet mes tableaux ne changeront pas, mais dans ce cas, il faut que je les définisse avec le type struct Jeu const struct Jeu T1.Nombre={...} ne marche pas. D'ailleurs il faudrait peut-être affecter des valeurs à Nombre et Solution en même temsp? |
J'ai réussi!
Pour ceux que ça interesse, il suffit de faire : const struct Jeu T1={ {...}, {...} }; Merci pour votre aide! |
Je pense que c'est bon, mais c'est assez dangereux comme manière de faire !
As tu compris pourquoi ça fonctionnait ? Si ce n'est pas le cas, ça me parait extremement dangereux ce que tu fais. T1 est un tableau à trois dimension en fait. Salutation ! avant je croyais, maintenant je suis fixé.Jésus Christ Char Snipeur |
Oui, j'ai compris... a moins qu'il y ait une astuce?
En fait ce que je ne comprends pas c'est pourquoi la déclaration de tab2 ne marche pas. C'est vrai, T1 est un tab à 3 dimensions, j'avais pas vu! En même temps, je vais rajouter des choses dans ma structure plus tard. |
à ce sujet, je te conseil de lire le chapitre7 (du moins le début) de ce livre :
http://beuss.developpez.com/tutoriels/pcasm/#LS1 Il m'a fait comprendre la nature des structures, et je pense qu'il t'aidera. En revanche pour les histoires de tableau, c'est un peu plus compliqué, je n'ai pas de source. Mais j'ai eu plein de discussion sur ce forum qui en traitait. En résumé (même si ça ne t'aide pas beaucoup) un tableau n'est pas un pointeur, mais peux se comporté comme tel dans certains cas particuliers, il se raproche du int*const (c'est le pointeur qui est constant et non la valeur pointé). Lorsque tu utilise met {...} cela correspond en fait à un tableau constant de valeurs constantes ! Il faut donc faire attention à ce qu'on fait avec. Par exemple, tu peux affecter ce tableau à un pointeur grâce au transtypage : int* C; C=(int*){1,2,3}; par contre, attention à ne pas faire de free sur C à ce moment là, ça causerai une erreur ! {1,2,3} est de type (int const * const). Salutation ! avant je croyais, maintenant je suis fixé.Jésus Christ Char Snipeur |
Merci beaucoup pour le lien, le document est très interessant; et merci pour toutes tes explications! |