Remplir tableau en C [Résolu/Fermé]

Signaler
Messages postés
8
Date d'inscription
mardi 7 août 2007
Statut
Membre
Dernière intervention
25 mai 2009
-
Messages postés
5451
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
14 décembre 2020
-
Bonjour à tous,

J'utilise un tableau de grande dimension, et j'aurais besoin de le remplir de la même valeur instantanément (donc pas de boucle for...).
Voici un exemple de ce que je cherche à faire :

unsigned char tableau[5] = {255, 255, 255, 255, 255} ;

Mais le tableau que j'utilise est beaucoup plus grand (et à 2 dimensions), et il serait peu convenable d'avoir 50 lignes de définition pour faire cela...

Est-il possible de ne taper qu'une fois la valeur pour remplir le tableau avec ?

Merci d'avance.
A voir également:

4 réponses

Messages postés
29487
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
4 janvier 2021
7 006
Du coup ton problème est résolu ?
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 66686 internautes nous ont dit merci ce mois-ci

Messages postés
8
Date d'inscription
mardi 7 août 2007
Statut
Membre
Dernière intervention
25 mai 2009
6
Oui, j'imagine... ^^
bonjour il s'avère que je suis plus ou moins bloqué , je cherche a faire relativement la même chose avec des boucle for la seule différence c'est que je souhaite faire en sorte que certaine case du tableau reste vide une idée ? (je veut remplire un tableau avec des 0 en faisant des forme en ascii donc il me faut des case vide mais je ne veut pas écrire le tableau manuellement d'où la boucle for ^^ )
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 66686 internautes nous ont dit merci ce mois-ci

Messages postés
5451
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
14 décembre 2020
919
Salut flaming,

Comme tu parles de "ascii" lorsque tu dis "case vide", je suppose qu tu veux dire "case contenant le caractère espace".

Donc tu as un tableau de char.

Le plus simple me parait d'initialiser ton tableau de char avec le caractère "espace".

Pour cela, utilise memset sur l'ensemble de la taille de ton tableau.

http://www.cplusplus.com/reference/cstring/memset/


Dal
Merci pour ta réponse rapide. Après plusieurs essais je ne pense pas que "memset" soit la solution ou alors je l'utilise mal, le problème c'est que j'utilise un tableau a deux dimensions (je ne sais pas si c un vrai problème ) ... voila le bout de code, plus parlant :


for (i=0; i<=3; i++) {
printf("\n0");
for (j=0; j<=4; j++){
tableau[i][j];
printf("0");
}
}
<code>
000000
000000
000000
000000

et je voudrait :
000000
00000
000
00

ce qui me ressort

et d'autres formes mais ont verra plus tard.
</code>
Donc ce que je pensais faire c'est qu'a chaque fois que la boucle s'exécute la taille du tableau diminue de 1 en largeur pour faire l'effet voulut je ne sais pas si je suis très clair, mais merci d'avance .
Messages postés
5451
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
14 décembre 2020
919
Poste un nouveau message avec ta question, qui n'a, en réalité, rien à voir avec la question initiale.

Dans ton post, mets ta déclaration et l'initialisation de "tableau"


Dal
Messages postés
29487
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
4 janvier 2021
7 006
En fait écrire 50 instructions ou une boucle for ce sera pareil. Pour ce que tu veux faire, la logique serait d'utiliser une boucle for. En C++ si tu utilises des std::vector il est possible de dire avec quelle valeur initialiser chaque case, mais en arrière plan il fera quand même une boucle for.

Une boucle for est quelque chose de rapide donc concrètement ce n'est pas gênant, même si ton tableau fait plusieurs milliers d'éléments.

Bonne chance
Messages postés
8
Date d'inscription
mardi 7 août 2007
Statut
Membre
Dernière intervention
25 mai 2009
6
Merci pour ta réponse, je me posais effectivement cette question sur la réalisation interne de l'initialisation du tableau.
bonjour,
je suis débutante, tu peut m envoyé le code de ce problem (remplir un tableau par la meme valeur)
et merci
Messages postés
29487
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
4 janvier 2021
7 006
#include <stdlib.h>

int main() {
  unsigned i, n = 28;

  // Allouer le tableau en mémoire
  int *tab = malloc(n * sizeof(int));

  // Initialiser chaque case du tableau à 7
  for (i = 0; i < n; ++i) {
    tab[i] = 7;
  }

  // Libérer le tableau
  free(tab);
  return 0;
}
Messages postés
29487
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
4 janvier 2021
7 006
Parfait, bonne continuation :-)