Tableau de tableaux en C, mais ????
Dernière réponse : dans Programmation
avec des dimensions différentes. Plus précisément je veux faire ça
1 0 0 1 0 1 1 1 1 1 0 0
g =
0 1 1 1 0 1 0 1 0
donc mon tableau
etc....
et je ne travaille qu'avec des 0 et des 1.
si quelqu'un a une idée...
1 0 0 1 0 1 1 1 1 1 0 0
g =
0 1 1 1 0 1 0 1 0
donc mon tableau
g[0][0] = {1, 0, 0, 1}
g[1][0] = {0, 1, 1}
etc....
et je ne travaille qu'avec des 0 et des 1.
si quelqu'un a une idée...
Autres pages sur : tableau tableaux
Lassé par la pub ? Créez un compte
un champ de bit c'est un entier ou tu utilise chacun de ses bits pour stocker tes 0 et tes 1.
le C possède des opérateurs bien pour faire ça, genre :
mettre un 1 dans le n-ième bit (bien sur n commence à 0) :
nombre |= 1<<n;
mettre un 0 dans le n-ième bit :
nombre &= ~(1<<n);
récuperer la valeur du n-ième bit :
(nombre >> n)&1
nombre est de préférence non signé, et possède une taille suffisante pour pouvoir mettre le nombre de bit que l'on veut. le seul truc c'est que on dépasse pas trop les 64 bit avec ça.
dans ton cas, il faut aussi stocker la taille, donc il faut un autre entier à part.
le C possède des opérateurs bien pour faire ça, genre :
mettre un 1 dans le n-ième bit (bien sur n commence à 0) :
nombre |= 1<<n;
mettre un 0 dans le n-ième bit :
nombre &= ~(1<<n);
récuperer la valeur du n-ième bit :
(nombre >> n)&1
nombre est de préférence non signé, et possède une taille suffisante pour pouvoir mettre le nombre de bit que l'on veut. le seul truc c'est que on dépasse pas trop les 64 bit avec ça.
dans ton cas, il faut aussi stocker la taille, donc il faut un autre entier à part.
elch a dit :
un champ de bit c'est un entier ou tu utilise chacun de ses bits pour stocker tes 0 et tes 1.le C possède des opérateurs bien pour faire ça, genre :
mettre un 1 dans le n-ième bit (bien sur n commence à 0) :
nombre |= 1<<n;
mettre un 0 dans le n-ième bit :
nombre &= ~(1<<n);
récuperer la valeur du n-ième bit :
(nombre >> n)&1
nombre est de préférence non signé, et possède une taille suffisante pour pouvoir mettre le nombre de bit que l'on veut. le seul truc c'est que on dépasse pas trop les 64 bit avec ça.
dans ton cas, il faut aussi stocker la taille, donc il faut un autre entier à part.
ça ne répond pas à la question.
le problème c'est comment définir cette structure avec des longueurs différentes des éléments.
elch a dit :
je comprend plus la, tu veux quoi au juste ?on oublies les 0 et les 1
je veux un tableau de tableaux d'entiers avec des tailles différentes 3 et 4.
g[0][0] = {1, 0, 0, 1}
g[1][0] = {0, 1, 1}
g[0][1] = {0, 1, 1, 1}
g[1][1] = {1, 0, 1}
g[0][2] = {1, 1, 0, 0}
g[1][2] = {0, 1, 0}
on peut avoir ça facilement ou faut passer par struct ??
Si tu veux de la "taille variable", soit tu utilises une zone de taille max pour tous et tu perds de la place pour les petits (le champ de bits est une bonne solution puisque tu ne considères que des booléens), soit tu alloues dynamiquement (avec malloc
) la taille idéale pour chacun.
. Pour chacun des cas, une valeur dans ta structure pour donner la taille de la zone est conseillée
) la taille idéale pour chacun.
. Pour chacun des cas, une valeur dans ta structure pour donner la taille de la zone est conseillée
Lassé par la pub ? Créez un compte