Я пытаюсь создать массив, который при каждом индексе я есть битовое поле я попробовал этот код:создать массив междунар который немного поле
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;}
, но я получаю ошибку компилятора для последняя строка кода. Я хочу, чтобы иметь возможность перейти к массиву с индексом 'n' и изменить значения битов (без использования масок). ошибка компилятора (хотя я не думаю, что это уместно) является:
error: expected identifier or '(' before '[' token
Если вы получили сообщение об ошибке со своего компилятора, вы должны скопировать/вставить эту ошибку в свой вопрос, чтобы другие могли вам помочь. У вас также есть '_' в вашей второй до последней строке, что не является правильным синтаксисом. – nos
Ну, вы код не имеет большого смысла и плохо отформатирован. И bitfield-'struct', конечно, не очень хорошая идея, если вы хотите обращаться к одиночным битам. Как правило, никогда не бросайте, если вы действительно не знаете все его последствия, принимайте их и (самое главное) действительно нужно. Также см. [Ask]. Ошибка компилятора: я бы предположил, что компилятор лучше знает здесь, что актуально, а что нет. Он должен сказать вам кое-что, что компилятор уверен, что ваш код неправильный. – Olaf
* ошибка компилятора (хотя я не думаю, что это релевантно) * Ошибки компилятора ** всегда актуальны. Все они. – dbush