January 26, 200818 yr Bonsoir, j'essaye actuellement de developper un puissance 4 en mode console pour m'assurer de la maitrise des tableaux, appels de fonctions avec arguments, boucles etc etc, j'y arrive bien excepte une chose: comment initialiser une matrice de [6][7] de char a la valeur " " (espace) en un coup ? En effet, ecrire {{" ", " ", ...}] me semble assez fastidieux, et k'imagine qu'il existe bien une solution alter,ative non ? J'ai essaye char cmatrix[6][7] = {" "} ; mais ca ne donne rien... Et si tous les sites expliquent comment initilaiser une aprtie de la matrice, aucun ,ne dit comment tout initialiser d'un coup. Quelqu'un a-t-il la bonne syntaxe pour cette operation ? Merci d'avance pour vos reponses et bonne soiree PS: j'utilise code:blocks
January 26, 200818 yr Avec 2 boucles 'for' imbriquées, ça n'irait pas ? Je te l'écris comme on l'écrirait en Java, à toi d'adapter pour le C++ si besoin est: for( int i = 0; i < tab.length; i ++ ) { for( int j = 0; j < tab[i].length; j ++ ) { tab[i][j] = " "; } }
January 26, 200818 yr Author Ah ouais, pas con du tout, bien vu Cependant, je me demande s'il n'existe pas de solution plus propre... mais faute de mieux je me servirai de cela, merci beaucoup !
January 27, 200818 yr En c++ on n'a pas accés à la taille des tableaux. De plus il ne faut pas confondre des strings (" ") et des chars (' ') for( int i = 0; i < 6; ++i) for( int j = 0; j < 7; ++j) tab[i][j] = ' ';
January 27, 200818 yr J'ai essaye char cmatrix[6][7] = {" "} ; mais ca ne donne rien... Le code exact serait plutôt char cmatrix[6][7] = {{" "}} Mais ça ne te remplirait que la première case à " " et tout le reste à 0. Les réponses au dessus sont un peu compliquées... La réponse serait plutôt : memset ((void *)cmatrix, (int)' ', 6*7);
February 25, 200818 yr Les réponses au dessus sont un peu compliquées...La réponse serait plutôt : memset ((void *)cmatrix, (int)' ', 6*7); Merde ^^ Je serai pas du genre a penser ce genre de truc Mais dire que les solutions du dessus sont compliquées, je ne trouve pas . Apres, elle sont surement moins performantes je pense, mais plus compliquées, pas vraiment
February 25, 200818 yr je rajouterai meme que c'est idiot de montrer un memset (qui est une bidouille mémoire, non générique) plutot que deux boucles imbriquées qui est plus explicite d'un point de vu algorithmique...
February 26, 200818 yr rhaaa, je suis pas d'accord. J'aime beaucoup le memset parce qu'il force a comprendre comment sont mappées les données en mémoire. Pour moi, c'est vital de savoir comment fonctionne la mémoire, surtout en C/C++. Il n'y a rien de plus désastreux que ceux qui programment en gardant une vision "boîte noire" de l'outil qu'ils exploitent.
February 26, 200818 yr je rajouterai meme que c'est idiot de montrer un memset (qui est une bidouille mémoire, non générique) plutot que deux boucles imbriquées qui est plus explicite d'un point de vu algorithmique... Moi je ne suis pas d'accord pour faire deux boucles imbriquées. Je pense qu'on devrait mettre à zéro successivement tous les bits un par un en appelant une routine en assembleur, quitte à faire dans la simplicité.
Archived
This topic is now archived and is closed to further replies.