Je suis en train de créer un tableau qui, à chaque indice i ont un champ de bits j'ai essayé ce code:créer une matrice de int qui est un champ de bits
struct bitF {
unsigned int x1:1;
...
unsigned int xn:1;
}intBF;
typedef struct intBF *arr[];
int main(){
int i;
unsigned int *arr2[10]
for(i=0;i<sizeof(arr2)/sizeof(unsigned int);i++)
{ arr2[i] = malloc(sizeof(intBF));
arr2[i] = (unsigned int *)(&intBF);
arr[i].x5 = 3;}
return 0;}
mais j'obtiens l'erreur du compilateur pour la dernière ligne de code. Je veux pouvoir aller au tableau à l'index 'n' et changer les valeurs de bits (sans utiliser de masques). l'erreur du compilateur (bien que je ne pense pas qu'il est pertinent) est:
error: expected identifier or '(' before '[' token
Si vous obtenez une erreur de votre compilateur, vous devez copier/coller cette erreur dans votre question, afin que les autres puissent vous aider. Vous avez également un '_' dans votre avant-dernière ligne, ce qui n'est pas une syntaxe correcte. – nos
Eh bien, vous codez n'a pas beaucoup de sens en effet et est mal formaté. Et un bitfield -struct n'est certainement pas une bonne idée si vous voulez adresser des bits simples. En règle générale, ne jamais lancer si vous ne connaissez pas vraiment toutes ses implications, les accepter et (le plus important) vraiment le faire. Voir aussi [demander]. Re l'erreur du compilateur: Je suppose que le compilateur sait mieux ce qui est pertinent et ce qui ne l'est pas. Il devrait vous dire quelque chose que le compilateur est certain que votre code est faux. – Olaf
* l'erreur du compilateur (bien que je ne pense pas que ce soit pertinent) * Les erreurs du compilateur sont ** toujours ** pertinentes. Tous. – dbush