Blacksword Posté(e) le 26 janvier 2008 Partager Posté(e) le 26 janvier 2008 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
windu.2b Posté(e) le 26 janvier 2008 Partager Posté(e) le 26 janvier 2008 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] = " "; } } Lien vers le commentaire Partager sur d’autres sites More sharing options...
Blacksword Posté(e) le 26 janvier 2008 Auteur Partager Posté(e) le 26 janvier 2008 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 ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
PiFou86 Posté(e) le 27 janvier 2008 Partager Posté(e) le 27 janvier 2008 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] = ' '; Lien vers le commentaire Partager sur d’autres sites More sharing options...
Blacksword Posté(e) le 27 janvier 2008 Auteur Partager Posté(e) le 27 janvier 2008 ok, merci beaucoup, Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 27 janvier 2008 Partager Posté(e) le 27 janvier 2008 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); Lien vers le commentaire Partager sur d’autres sites More sharing options...
Le Saigneur Sombre Posté(e) le 23 février 2008 Partager Posté(e) le 23 février 2008 memset ((void *)cmatrix, (int)' ', 6*7); Perfect ! C'était ma réponse... Lien vers le commentaire Partager sur d’autres sites More sharing options...
16ar Posté(e) le 25 février 2008 Partager Posté(e) le 25 février 2008 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
PiFou86 Posté(e) le 25 février 2008 Partager Posté(e) le 25 février 2008 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... Lien vers le commentaire Partager sur d’autres sites More sharing options...
lorinc Posté(e) le 26 février 2008 Partager Posté(e) le 26 février 2008 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 26 février 2008 Partager Posté(e) le 26 février 2008 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é. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.